DateTimeImmutable::setTimestamp
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTimestamp — Unix タイムスタンプを用いて日付と時刻を設定する
説明
Unix タイムスタンプを用いて日付と時刻を設定し、 古いものから新しい DateTimeImmutable オブジェクトを作成して返します。
パラメータ
timestamp
-
Unix タイムスタンプ。 DateTimeImmutable::modify() を
@
フォーマットと共に使うと、 数値型の範囲外のタイムスタンプを設定できます。
戻り値
変更されたデータを持つ、新しい DateTimeImmutable オブジェクトを返します。
例
例1 DateTimeImmutable::setTimestamp() の例
オブジェクト指向型
<?php
$date = new DateTimeImmutable();
echo $date->format('U = Y-m-d H:i:s') . "\n";
$newDate = $date->setTimestamp(1171502725);
echo $newDate->format('U = Y-m-d H:i:s') . "\n";
?>
上の例の出力は、 たとえば以下のようになります。
1272508903 = 2010-04-28 22:41:43 1171502725 = 2007-02-14 20:25:25
参考
- DateTimeImmutable::getTimestamp() - Unix タイムスタンプを取得する
+add a note
User Contributed Notes 2 notes
Philip ¶
3 years ago
This function will not change the value of the DateTimeImmutable object as the method name might suggest. The object, after all, immutable.
<?php
$dti = new DateTimeImmutable();
echo $dti->getTimestamp(); // e.g. 123456789
$dti->setTimestamp(987654321);
echo $dti->getTimestamp(); // 123456789
$x = $dti->setTimestamp (987654321);
echo $x->getTimestamp(); // 987654321
?>
lukin dot andrej at gmail dot com ¶
1 year ago
While modifying Datetime with the timezone, the user should be aware that changing the timestamp using "@".\time() is not the same as changing the timestamp using setTimestamp().
$now = new \DateTimeImmutable('August 30, 2023 09:00:00 GMT+01');
$origin = $now->getTimestamp(); // 1693382400
$usingAt = $now->modify('@'.$now->getTimestamp())->getTimestamp(); // 1693378800
$usingSetTimestamp = $now->setTimestamp($now->getTimestamp())->getTimestamp(); // 1693382400
var_dump($usingAt === $origin); // false
var_dump($usingSetTimestamp === $origin); // true
↑ and ↓ to navigate •
Enter to select •
Esc to close
Press Enter without
selection to search using Google