DateTimeクラスについて
2019年7月18日
DateTimeクラスのメモ
・タイムゾーンの取得、変更
// タイムゾーンの取得 $date = new DateTime(); $timezone = $date->getTimezone(); echo $timezone->getName(); echo '<br>'; // タイムゾーンの変更 $date->setTimezone(new DateTimeZone('Asia/Tokyo')); $timezone = $date->getTimezone(); echo $timezone->getName(); echo '<br>'; echo $date->format('Y-m-d H:i:s'); echo '<br>';
・現在日時を作成
// 現在日時を作成 $date = new DateTime(); echo $date->format('Y-m-d H:i:s'); echo '<br>';
・指定した日時を作成
// 指定した日時を作成 $date = new DateTime('2020-07-01 12:23:34'); echo $date->format('Y-m-d H:i:s'); echo '<br>';
・数値から日時を作成
// 数値から $date = new DateTime(); $date->setDate(2020,9,23); echo $date->format('Y-m-d H:i:s'); echo '<br>'; $date = new DateTime(); $date->setDate(2020,4,15)->setTime(12,45,37); echo $date->format('Y-m-d H:i:s'); echo '<br>';
・出力形式
フォーマットは下記を参照
// 出力形式 - 過去記事参照 $date = new DateTime(); echo $date->format('Y-m-d h:i:s a'); echo '<br>'; echo $date->format('y-F-d D'); echo '<br>'; echo $date->format('t'); echo '<br>';
・日付を計算
strtotime関数を使った方法は下記参照
// 日付の計算 - strtotimeは過去記事参照 $date1 = new DateTIme('2020-05-04'); $date2 = new DateTime('2021-12-27'); $diff = $date1->diff($date2); echo $diff->format('%R%a'); echo '<br>'; echo $date2->diff($date1)->format('%R%a'); // -3 echo '<br>'; echo $date2->diff($date1, true)->format('%R%a'); // +3 (常に正) echo '<br>'; $date1 = new DateTime('2013-05-04 23:34:14'); $date2 = new DateTime('2014-07-01 09:10:13'); $diff = $date1->diff($date2); echo $diff->format('%R %y年 %mヶ月 %d日 %h時間 %i分 %s秒 の時差'); echo '<br>';