PHPで時間の比較を行い経過時間以内か判定

PHPの時間比較にmktimeを用いる

PHPで経過時間を求める場合には、

日付を含めた時間をmktime化して、現在のmktimeと比較する

という方法をよく利用している。

$pretime = mktime(時, 分, 秒, 月, 日, 年); //過去のある時点
$now = mktime(); //現在時刻

$d = $now - $pretime; //比較
$d = $d/60; //分に変換

if ( (int)$d > 720 ) //12時間以内かどうか?
{

}

$pretimeに過去のある時点をmktime化して、同様にmktime化した$nowとの差を求め、その差を分に変換している。

mktimeの具体例

例えば、

2013-07-19T10:18:33+02:00

という文字列の時間データがあったとする。

その場合には、以下のようにしてmktime化して時刻の経過時間を求めることができる。

$div = split("T", "2013-07-19T10:18:33+02:00");
$div_year = split("-", $div[0]);
$div_hour_org = explode("+", $div[1]);
$div_hour = split(":", $div_hour_org[0]);

$pretime = mktime($div_hour[0], $div_hour[1], $div_hour[2], $div_year[1], $div_year[2], $div_year[0]);
$now = mktime();

$d = $now - $pretime;
$d = $d/60;

if ( (int)$d > 720 ) //12時間以内
{

}

一定の時間内かどうかを調べる

午前2時から午前5時の間を判定する場合には、mktimeを以下のように利用することができる。

if ( time() > mktime(2,0,0) and time() < mktime(5,0,0) )
{

}

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

PHPで時間の比較を行い経過時間以内か判定の記事にコメントを投稿