DateTimeImmutable::setTimestamp

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

DateTimeImmutable::setTimestamp β€” УстанавливаСт Π΄Π°Ρ‚Ρƒ ΠΈ врСмя Π½Π° основС ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix

ОписаниС

#[\NoDiscard(message: "as DateTimeImmutable::setTimestamp() does not modify the object itself")]
public function DateTimeImmutable::setTimestamp(int $timestamp): DateTimeImmutable

ΠœΠ΅Ρ‚ΠΎΠ΄ ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π΄Π°Ρ‚Ρ‹ ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, устанавливаСт Π² ΠΊΠΎΠΏΠΈΠΈ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Ρ‚Ρƒ ΠΈ врСмя Π½Π° основС ΠΌΠ΅Ρ‚ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΡƒΡŽ копию ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° DateTimeImmutable.

Бписок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

timestamp

ΠœΠ΅Ρ‚ΠΊΠ° Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Unix, которая прСдставляСт Π΄Π°Ρ‚Ρƒ ΠΈ врСмя. Установка ΠΌΠ΅Ρ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… int Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Ρ‚ΠΎΠ΄ DateTimeImmutable::modify() Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ с символом @ Π² Π½Π°Ρ‡Π°Π»Π΅ числовой строки с допустимой Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΄ΠΎ 6 Π·Π½Π°ΠΊΠΎΠ² для микросСкунд.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния

ΠœΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ 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

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

  • DateTimeImmutable::getTimestamp() - Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с Π½Π°Ρ‡Π°Π»Π° эпохи Unix
  • DateTimeImmutable::setMicrosecond() - УстанавливаСт ΠΌΠΈΠΊΡ€ΠΎΡΠ΅ΠΊΡƒΠ½Π΄Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ 2 notes

up
1
Philip ΒΆ
4 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
-3
lukin dot andrej at gmail dot com ΒΆ
3 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