PHP
Timestamp

PHPでUTCタイムスタンプ

UTCのタイムスタンプ形式で0時の値のみ受け付けるというAPIがありましたので必要に迫られてUTCタイムスタンプを取得してみました。

strtotimeの場合

$utc_timestamp = strtotime(date('Y-m-d').' UTC');

DateTimeの場合

$datetime = new DateTime(date('Y-m-d'), new DateTimeZone('UTC'));
$utc_timestamp = $datetime->getTimestamp();

DateTimeImmutableの場合

$datetime = new DateTimeImmutable(date('Y-m-d'), new DateTimeZone('UTC'));
$utc_timestamp = $datetime->getTimestamp();

オブジェクト指向型の方はインスタンス作成時に設定する必要がありました。作成後に以下を行っても変更できない様子でした。

$datetime->setTimezone(new DateTimeZone('UTC'));