DateTimeImmutable::setTimestamp

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

DateTimeImmutable::setTimestampSets the date and time based on a Unix timestamp

Descrizione

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

Returns a new DateTimeImmutable object constructed from the old one, with the date and time set based on an Unix timestamp.

Elenco dei parametri

timestamp

Unix timestamp representing the date. Setting timestamps outside the range of int is possible by using DateTimeImmutable::modify() with the @ format.

Valori restituiti

Returns a new DateTimeImmutable object with the modified data.

Esempi

Example #1 DateTimeImmutable::setTimestamp() example

Stile orientato agli oggetti

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

The above examples will output something similar to:

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

Vedere anche:

add a note add a note

User Contributed Notes 2 notes

up
7
ben at hl9 dot net
5 years ago
Note that this is not the right way to initiate a \DateTimeImmutable object with a numeric Unix timestamp. 

<?php
// Wrong, despite the documention *kind of* alluding to it
$obj = \DateTimeImmutable::setTimestamp(time() - 1);

// Also won't work
$obj = new \DateTimeImmutable(time() - 1)

// Correct, works, clean single line
$obj = (new \DateTimeImmutable())->setTimestamp(time() - 1);
?>

... In fact, this is a non-static method and thus should not be called statically.
up
1
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
?>
To Top