PHP Walker サイトマップ | お問合せ | このサイトについて
 PHP ウォーカー
 
はじめに
PHP基本
日付・時刻
・ローカル時間、GMT(グリニッジ標準時間)(date、gmdate)
・日付の妥当性のチェック(checkdate)
・日付情報の取得(getdate)
・日付情報の作成(mktime)
・日付の計算
関数

 日付の計算
型についてで書きましたがPHPでは8種類の型しかなく、日付型という型はありません。
日付は内部では32ビット符号付き整数として扱われています。
ソースコード
print gmdate("Y/m/d H:i:s", 0) . "<br>\n";
print gmdate("Y/m/d H:i:s", 2147483647) . "<br>\n";
print gmdate("Y/m/d H:i:s", -2147483647) . "<br>\n";
出力結果

1970/01/01 00:00:00
2038/01/19 03:14:07
1901/12/13 20:45:53


この例で分かるように0は1970年1月1日、最大値の2147483647が2038年1月19日3時14分7秒、最小値の-2147483647が1901年12月13日20時45分53秒となることが分かります。

日付の正体は整数型なので計算は簡単です。単純に足したり引いたりすればいいのです。
ソースコード
$i1 = 3600;
$d1 = mktime (12, 30 , 10 , 1, 2, 2002);
$d2 = mktime (12, 30 , 10 , 1, 1, 2002);
$d3 = $d1 - $d2;
$d4 = $d2 + $i1;

print date("Y/m/d H:i:s", $d1) . " と " . date("Y/m/d H:i:s", $d2) . " の差は " . $d3 . " 秒あります。<br>\n";
print date("Y/m/d H:i:s", $d2) . " の " . $i1 . " 秒後は " . date("Y/m/d H:i:s", $d4) . " です。<br>\n";
出力結果

2002/01/02 12:30:10 と 2002/01/01 12:30:10 の差は 86400 秒あります。
2002/01/01 12:30:10 の 3600 秒後は 2002/01/01 13:30:10 です。



サイトポリシー | 新着情報 | 掲示板 | お問合せ
Copyright © エンジニアウォーカー All Rights Reserved.