PHP 8.4.1 Released!

DateTimeImmutable::setTimestamp

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::setTimestampУстанавливает дату и время на основе метки времени Unix

Описание

public DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable

Возвращает новый объект DateTimeImmutable, построенный из старого, с датой и временем, установленными на основе метки времени Unix.

Список параметров

timestamp

Метка времени Unix, представляющая дату. Установка меток времени вне диапазона целого числа (int) возможна при использовании метода 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

Смотрите также

Добавить

Примечания пользователей 2 notes

up
0
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
?>
up
-2
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
To Top