Date timestamp set: примеры (PHP)
date_timestamp_set(DateTime $object, int $timestamp): DateTimeОписание функции date_timestamp_set
Функция date_timestamp_set устанавливает дату и время для объекта DateTime, используя метку времени Unix. Эта функция изменяет существующий объект DateTime.
public DateTime::setTimestamp(int $timestamp): DateTime
date_timestamp_set(DateTime $object, int $timestamp): DateTime- object - обязательный параметр. Объект класса DateTime, возвращаемый функцией
date_create(). - timestamp - обязательный параметр. Метка времени Unix, представляющая количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC.
Функция возвращает модифицированный объект DateTime для цепочки вызовов или false в случае возникновения ошибки.
Короткие примеры использования
$date = date_create();
$newDate = date_timestamp_set($date, 1640995200);
echo date_format($newDate, 'Y-m-d H:i:s');2022-01-01 00:00:00$date = new DateTime();
$date->setTimestamp(1672531200);
echo $date->format('d.m.Y H:i');01.01.2023 00:00$date = date_create('2020-01-01');
$date->setTimestamp(time());
echo $date->format('Y-m-d H:i:s');2023-11-15 14:30:25Похожие функции в PHP
Устанавливает час, минуту, секунду и микросекунды. Полезно при изменении только времени без изменения даты.
Устанавливает год, месяц и день. Используется для изменения даты без влияния на время.
Изменяет временную метку, добавляя или вычитая интервал в формате строки. Более гибкий метод для сложных операций.
Создает объект DateTime из строки с заданным форматом. Альтернатива при работе со строками определенного формата.
Альтернативы в других языках программирования
from datetime import datetime
dt = datetime.fromtimestamp(1640995200)
print(dt.strftime('%Y-%m-%d %H:%M:%S'))2022-01-01 00:00:00let date = new Date();
date.setTime(1640995200000);
console.log(date.toISOString());2022-01-01T00:00:00.000ZSELECT FROM_UNIXTIME(1640995200) AS datetime;2022-01-01 00:00:00Типичные ошибки
$date = date_create();
$result = date_timestamp_set($date, 'не число');
var_dump($result);Warning: date_timestamp_set() expects parameter 2 to be int, string given$date = date_create();
$date->setTimestamp(-9999999999);
echo $date->format('Y-m-d');Invalid date$date = '2023-01-01';
$result = date_timestamp_set($date, 1640995200);Fatal error: Uncaught TypeError: date_timestamp_set(): Argument #1 ($object) must be of type DateTime, string givenИзменения в последних версиях PHP
В PHP 8.0.0 функция date_timestamp_set теперь возвращает экземпляр DateTime, а не DateTimeImmutable. В предыдущих версиях сигнатура отличалась.
До PHP 8.0.0 функция могла возвращать null в случае неудачи, но теперь всегда возвращает DateTime или вызывает исключение TypeError при неверных аргументах.
В PHP 7.1.0 было добавлено исключение DateRangeError для временных меток вне допустимого диапазона 32-битных систем.
Расширенные примеры использования
$date = date_create();
$timestampWithMicro = 1640995200 + 0.5;
$date->setTimestamp((int)$timestampWithMicro);
$date->modify('+' . ($timestampWithMicro - (int)$timestampWithMicro) . ' seconds');
echo $date->format('Y-m-d H:i:s.u');2022-01-01 00:00:00.500000$timestamps = [1640995200, 1672531200, 1704067200];
$results = [];
foreach ($timestamps as $ts) {
$date = date_create();
$date->setTimestamp($ts);
$results[] = $date->format('d.m.Y');
}
print_r($results);Array
(
[0] => 01.01.2022
[1] => 01.01.2023
[2] => 01.01.2024
)$originalDate = date_create('2023-01-15');
$modifiedDate = clone $originalDate;
$modifiedDate->setTimestamp(1640995200);
$interval = $originalDate->diff($modifiedDate);
echo 'Разница: ' . $interval->format('%R%a дней');Разница: -379 дней$date = date_create('now', new DateTimeZone('America/New_York'));
$date->setTimestamp(1640995200);
echo $date->format('Y-m-d H:i:s T');2021-12-31 19:00:00 EST