CakeFest 2024: The Official CakePHP Conference

DateTimeImmutable::setTimestamp

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

DateTimeImmutable::setTimestampDéfinit la date et l'heure basé sur un horodatage Unix

Description

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

Retourne un nouvel objet DateTimeImmutable construit à partir de l'ancien, avec la date et l'heure basées sur un horodatage Unix.

Liste de paramètres

timestamp

L'horodatage Unix représentant la date. Définir l'horodatage en dehors de l'intervalle d'un entier est possible en utilisant DateTimeImmutable::modify() avec le format @.

Valeurs de retour

Retourne un nouvel objet DateTimeImmutable avec les données modifiées.

Exemples

Exemple #1 Exemple de DateTimeImmutable::setTimestamp()

Style orienté objet

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

Les exemples ci-dessus vont afficher quelque chose de similaire à :

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

Voir aussi

add a note

User Contributed Notes 2 notes

up
0
Philip
2 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