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