AI ANSWERS by 1 NOTES

WEB制作、AI、Windows、アプリの使い方など様々な疑問を解決する

PHPでDatetimeの値をISO 8601にフォーマットする

PHPでDatetimeオブジェクトをISO 8601形式の文字列に変換するには、DateTime::format()メソッドを使用します。

以下は、例です。

$datetime = new DateTime('now');
$iso8601_datetime = $datetime->format('Y-m-d\TH:i:sP');
echo $iso8601_datetime;

上記のコードでは、現在の日時を示すDateTimeオブジェクトを作成し、format()メソッドを使用して、ISO 8601形式の文字列に変換しています。format()メソッドに渡すフォーマット文字列には、ISO 8601形式の要素が含まれています。

ISO 8601形式の要素については、以下のようになります。

また、DateTimeオブジェクトのタイムゾーンを変更する場合は、DateTime::setTimezone()メソッドを使用します。

$datetime = new DateTime('now');
$iso8601_datetime = $datetime->format('Y-m-d\TH:i:sP');
echo $iso8601_datetime;

上記の例では、Asia/Tokyoタイムゾーンで現在の日時を示すDateTimeオブジェクトを作成し、setTimezone()メソッドを使用してUTCタイムゾーンに変更しています。そして、format()メソッドを使用して、変換後のISO 8601形式の文字列を取得しています。注意してほしいのは、UTCの場合はタイムゾーンオフセットを示す+hh:mm形式の代わりにZを使います。