修正に半日も使って面倒だったのでメモ。 32bitのPHPでUNIXタイムスタンプを利用するdate,mktime,strtotime関数を利用して2038年を超えるような日付を扱おうとすると桁あふれになってしまい、1970年1月1日として扱われてしまいます。(2038年問題) その場合PHP5から利用可能なdate_create,date_format関数などを利用すれば桁あふれなく対応が可能です。日付の計算はdate_add,date_subが利用出来ます。また、Datetime同士での比較も可能です。
// 現在の日付を規定フォーマットで表示 $now = date_create('now'); echo date_format($now, 'Y-m-d H:i:s'); // 2000年1月20日の10日前の日付を取得 $date = new DateTime('2000-01-20'); $date->sub(new DateInterval('P10D')); // 比較 if($now > $date) { //こちらに遷移 }
PHP知っている人からすると「こんな事も知らないのかよ」ってつっこみができそうですが。。。
0 件のコメント:
コメントを投稿