PHP入門 DateTimeクラス
DateTimeクラスは、日付/時刻の演算や整形を行うためのクラスです。
DateTimeオブジェクトの生成
構文:DateTimeクラス
new DateTime([string $datetime = "now" [, ?DateTimeZone $timezone]])
$datatime | 日付/時刻文字列 |
$timezone | タイムゾーン |
1、現在の日付/時刻から生成
DateTimeオブジェクトを生成するもっとも簡単な方法です。
<?php
$now = new DateTime();
print $now->format('Y年m月d日 H:i:s');
引数なしでDateTimeオブジェクトを生成した場合、DateTimeオブジェクトには現在の日付がセットされます。formatメソッドは、DateTimeオブジェクトの内容を整形するためのメソッドです。
2、日付/時刻文字列から生成
日付/時刻文字列からDateTimeオブジェクトを生成することもできます。
<?php
$now = new DateTime('2022/01/01 10:15:05');
print $now->format('Y年m月d日 H時i分');
3、タイムゾーンを指定する
DateTimeコンストラクタでは、第2引数にタイムゾーンを指定することもできます。
<?php
$dt1 = new DateTime (null, new DateTimeZone ('Asia/Ulan Bator'));
print $dt1->format('YmAd Hi');
$dt2 = new DateTime (null, new DateTimeZone ('America/Virgin'));
print $dt2->format('YmAdB Hi');
$dt3 = new DateTime (null, new DateTimeZone('Europe/London'));
print $dt3->format('YmAda Hi');
タイムゾーンは、DataTimeZoneオブジェクトとして指定します。指定できるタイムゾーンのリストは、静的メソッドDateTimeZone::listIdentifiersの戻り値から、もしくは、「サポートされるタイムゾーンのリスト」(https://www.php.net/manual/ja/timezones.php)から確認できます。タイムゾーンを指定する場合、DateTimeコンストラクタの第1引数は省略できません。現在時刻を取得するならば、nullを指定しておきます。タイムゾーンを省略した場合には、php.iniのdate.timezoneパラメーターの値を既定値とみなします。