DateTimeInterface::getTimestamp

DateTimeImmutable::getTimestamp

DateTime::getTimestamp

date_timestamp_get

Unix タイムスタンプを取得する

説明

オブジェクト指向型

public int DateTimeInterface::getTimestamp()
public int DateTimeImmutable::getTimestamp()
public int DateTime::getTimestamp()

手続き型

int date_timestamp_get(DateTimeInterface $object)

Unix タイムスタンプを取得します。

パラメータ

この関数にはパラメータはありません。

戻り値

その日付をあらわす Unix タイムスタンプを返します。

エラー / 例外

タイムスタンプが整数として表現できない場合、 DateRangeError がスローされます。 PHP 8.3.0 より前のバージョンでは、ValueError がスローされていました。また、PHP 8.0.0 より前のバージョンでは同様の場合に false を返していました。 さらに、 DateTimeInterface::formatU を指定すると、タイムスタンプは文字列として取得できます。

変更履歴

バージョン 説明
8.3.0 範囲外の例外が DateRangeError になりました。
8.0.0 これらの関数は、失敗時に false を返さなくなりました。

例1 DateTime::getTimestamp の例

オブジェクト指向型

<?php
$date = new DateTimeImmutable();
echo $date->getTimestamp();
?>

手続き型

<?php
$date = date_create();
echo date_timestamp_get($date);
?>

上の例の出力は、 たとえば以下のようになります。

1272509157

ミリ秒やマイクロ秒の精度でタイムスタンプを取得したい場合、 DateTimeInterface::format が使えます。

例2 ミリ秒とマイクロ秒の精度でタイムスタンプを取得する

オブジェクト指向型

<?php
$date = new DateTimeImmutable();
$milli = (int) $date->format('Uv'); // タイムスタンプをミリ秒で取得
$micro = (int) $date->format('Uu'); // タイムスタンプをマイクロ秒で取得

echo $milli, "\n", $micro, "\n";
?>

上の例の出力は、 たとえば以下のようになります。

1674057635586
1674057635586918

参考

  • DateTime::setTimestamp
  • DateTimeImmutable::setTimestamp
  • DateTimeInterface::format