PHP 8.1.28 Released!

DateTimeImmutable::setTime

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

DateTimeImmutable::setTimeУстанавливает время

Описание

public DateTimeImmutable::setTime(
    int $hour,
    int $minute,
    int $second = 0,
    int $microsecond = 0
): DateTimeImmutable

Возвращает новый объект DateTimeImmutable со временем, установленным на заданное время.

Список параметров

hour

Час времени.

minute

Минута времени.

second

Секунда времени.

microsecond

Микросекунда времени.

Возвращаемые значения

Возвращает новый объект DateTimeImmutable с модифицированными данными.

Список изменений

Версия Описание
8.1.0 Поведение с удвоением существующих часов (во время резервного перехода на летнее время) изменилось. Раньше PHP выбирал второе вхождение (после перехода на летнее время) вместо первого вхождения (до перехода на летнее время).
7.1.0 Добавлен параметр microsecond.

Примеры

Пример #1 Пример использования DateTimeImmutable::setTime()

Объектно-ориентированный стиль

<?php
$date
= new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55);
echo
$newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 24);
echo
$newDate->format('Y-m-d H:i:s') . "\n";
?>

Вывод приведённых примеров будет похож на:

2001-01-01 14:55:00
2001-01-01 14:55:24

Пример #2 Значения, выходящие за пределы диапазона, добавляются к своим родительским значениям

<?php
$date
= new DateTimeImmutable('2001-01-01');

$newDate = $date->setTime(14, 55, 24);
echo
$newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 55, 65);
echo
$newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(14, 65, 24);
echo
$newDate->format('Y-m-d H:i:s') . "\n";

$newDate = $date->setTime(25, 55, 24);
echo
$newDate->format('Y-m-d H:i:s') . "\n";
?>

Результат выполнения приведённого примера:

2001-01-01 14:55:24
2001-01-01 14:56:05
2001-01-01 15:05:24
2001-01-02 01:55:24

Смотрите также

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top