Lab.

【備忘録】【PHP】時間の比較 未来か過去かを比べる処理

この時間の比較もしょっちゅうでてくるですね!
細かいパーツを忘れるんで、記載しておきます。


今日の日付を取得するには

new DateTime();
//実際にはこんなカタチですね!
new DateTime();
$date = new DateTime();

タイムゾーンの設定

いらない場合もあるかもしれませんが、一応記載しておくよ。自分これよく忘れる。

//上記の今日の日付を東京のタイムゾーンにセット
$date->setTimeZone(new DateTimeZone('Asia/Tokyo'));

日付の形式を設定

//上の$dateの時間の形式を合わせるのはこんな感じ
$date->format('Y-m-d');

//日付の形式を指定「年月日」のみ
$today = $date->format('Y-m-d');

//日付の形式を指定「年月日+時分秒」
$today = $date->format('Y-m-d H:i:s');

英文形式の日付を Unix タイムスタンプに変換する

strtotime
//英文形式の日付のままだと比較できない?感じなので、Unixのタイムスタンプに変換
strtotime($eventday)

日付の比較

いろいろやった結果、以下のような記述になる


$eventday = '2014-08-23';//この日が未来なのか過去なのかを比較して

$date = new DateTime();
$date->setTimeZone(new DateTimeZone('Asia/Tokyo'));
$today = $date->format('Y-m-d');//$eventdayの形式とフォーマットをあわせてます。
		
if (strtotime($eventday) > strtotime($today)) {
echo"みらいなのですよ";//未来のときの処理を記述
}elseif(strtotime($eventday) < strtotime($today)){
echo"かこなのよ";//過去のときの処理を記述
}else{
echo"それ以外って、いっしょってこと?";//今日のときの処理を記述
}

related article