PHPでstrtotime関数を使い日付・時間表示する方法
PHPで文字列からUnixタイムスタンプに変換することができるstrtotime関数について説明します。
date関数と組み合わせることで、日付フォーマットを柔軟に変更することができます。
strtotime関数の使い方
strtotime ( 時間 )
strtotime関数では、「2016-05-18」といった日付形式以外にも、英文形式の日付「10 September 2000」でも日付を指定できます。
また、具体的な日付を指定するほかに「now」や「tomorrow」といった相対的な日付も指定することができます。以下に一例を挙げます。
現在
strtotime("now");
明日(1日後)
strtotime("+1 day");
1週間後
strtotime("+1 week");
次の曜日
strtotime("next Thursday");
前の曜日
strtotime("last Monday");
複合
strtotime("+1 week 2 days 4 hours 2 seconds");
strtotime関数の結果は、UNIXタイムスタンプ形式のint型で戻されます。システムがこのint型を基準に2日後、1週間前などの日付、時間を取得したい場合に計算しやすいため、このような形式でデータを持っています。
date関数を使って変換
結果を分かりやすい形式に変換するためにはdate関数を使用してint型から指定されたフォーマットに変換します。
$now = strtotime("now"); // now は現在時刻を意味する $tomorrow = strtotime("tomorrow");//+1 day つまり明日を意味する echo '現在時刻:'.date( 'Y年m月d日 H時i分s秒', $now )."<br />\n"; echo '明日の日付:'.date( 'Y年m月d日', $tomorrow );
strtotimeで使える相対的な日付書式
0-9までの算用数字が使え、正(+)と負(-)を指定できます。単位や日付は以下のシンボルが使えます。
シンボル | 書式 |
---|---|
日付・時刻 | yesterday,midnight,today,now,noon,tomorrow |
曜日 | sunday, monday, tuesday, wednesday, thursday, friday, saturday, sun, mon, tue, wed, thu, fri , sat |
順序 | first, second, third, fourth, fifth, sixth, seventh, eighth, ninth, tenth, eleventh, twelfth, next, last, previous, this |
前後など | next, last, previous, this |
単位 | sec, second, min, minute, hour, day, fortnight, week, month, year, weekday |