PHPで時間の差を計算をしたい場合、どうすればよいでしょうか?それを考えていきます。11月25日記事
目次
時間を表示させる場合はdate関数を使い、引数に年であるYや月であるmなどの情報を付け加えていけばよいのですが、時間そのものの差や何秒立ったかを計算させるためにはstrtotime関数というものを使います。
これは1970年1月1日から起算して何秒たったかを表示させるものです。
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>時間を計算する</title> </head> <body> <?php date_default_timezone_set('Asia/Tokyo'); $now = strtotime(date("Y-m-d H:i:s")); echo $now; echo "<br>"; //データを引っ張ってきて2015-11-25 00:00:00日時にログインしたという情報を格納すると仮定する。 $time = "2015-11-25 00:00:00"; $login_time = strtotime(date($time)); echo "<br>"; $diff = $now - $login_time; echo $diff; echo "<br>"; echo "<br>"; //○分経ったらなんかのエラーを出す。 $limit = 5; if($diff >= 60 * $limit){//秒単位で計算されるので、60倍にして分単位にする。 echo "ログインしてから".$limit."分経過しました。"; }else{ echo "まだ".$limit."分以内です。"; } ?> </body> </html>
date関数にさらにstrtotime関数を付け加えることでUNIXタイムを取得できます。あとはちょこちょこと計算していけばいけます。
以上