DateTimeImmutable::setTimestamp

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

DateTimeImmutable::setTimestampEstablece la fecha y hora basadas en una marca de tiempo Unix (Unix timestamp)

Descripción

public DateTimeImmutable::setTimestamp(int $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.

Parámetros

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 @.

Valores devueltos

Returns a new DateTimeImmutable object with the modified data.

Ejemplos

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";
?>

El resultado de los ejemplos sería algo similar a:

1272508903 = 2010-04-28 22:41:43
1171502725 = 2007-02-14 20:25:25

Ver también

add a note

User Contributed Notes 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
2 years 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