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パラメーターの値を既定値とみなします。