(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTimestamp — Establece la fecha y hora basadas en una marca de tiempo Unix (Unix timestamp)
$timestamp): DateTimeImmutable Devuelve un nuevo objeto DateTimeImmutable construido a partir del antiguo, con la fecha y hora establecidas basadas en una marca de tiempo Unix.
timestamp
Una marca de tiempo Unix representando la fecha.
Establecer marcas de tiempo fuera del rango de int es posible usando
DateTimeImmutable::modify() con el formato @.
Retorna un nuevo objeto DateTimeImmutable con los datos modificados.
Ejemplo #1 Ejemplo de DateTimeImmutable::setTimestamp()
Estilo orientado a objetos
<?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";Resultado del ejemplo anterior es similar a:
1272508903 =わ 2010年04月28日 22:41:43 1171502725 =わ 2007年02月14日 20:25:25
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
?>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