時間の経過を調べる方法 | PHPやります!PHPでスクリプト/CGI作ります!

時間の経過を調べる方法

指定時刻が、現在の時刻から何日経過しているか調べる。

//現在時刻のDateTime作成
$d1 = new DateTime(date("Y-m-d H:i:s"));
//指定時刻のDateTime作成
$d2 = new DateTime('2011-07-11 09:08:51');

echo $d1->getTimestamp();
echo "\n";
echo "\n";

echo $d2->getTimestamp();
echo "\n";
echo "\n";

//1日(24時間)足す
$d2->add(new DateInterval("P1D"));
echo $d2->getTimestamp();
echo "\n";
echo "\n";

//引き算してプラスだったら、24時間以上経っている。
echo $d1->getTimestamp() - $d2->getTimestamp();
echo "\n";

**************実行結果**************
1310429436

1310342931

1310429331

105

************************************

DateTime使えば、簡単に出来ると思ったのにDateIntervalのパラメータが使いにくい。
それに、なんかイヤだな・・・

↓普通に演算することにした・・・

$d1 = time();
$d2 = strtotime('2011-07-11 09:38:51');

echo $d1;
echo "\n";
echo "\n";

echo $d2;
echo "\n";
echo "\n";

echo $d1 - ($d2+60*60*24);
echo "\n";
echo "\n";

なんか、もっと良い方法ってないのかなぁ・・・