PHP 8.5.0 RC 2 available for testing

DateTimeImmutable::setTime

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

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

Описание

#[\NoDiscard]
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

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

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top