(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — Establece la hora
$hour,$minute,$second = 0,$microsecond = 0Devuelve un nuevo objeto DateTimeImmutable con la hora establecida a la hora dada.
hourHora de la hora.
minuteMinuto de la hora.
secondSegundo de la hora.
microsecondMicrosegundo de la hora.
Returns a new DateTimeImmutable object with the modified data.
| Versión | Descripción |
|---|---|
| 8.1.0 | El comportamiento con horas dobles existentes (durante la transición de DST de retroceso) cambió. Anteriormente, PHP elegiría la segunda ocurrencia (después de la transición de DST), en lugar de la primera ocurrencia (antes de la transición de DST). |
| 7.1.0 | Se ha añadido el parametro microsecond. |
Ejemplo #1 Ejemplo de DateTimeImmutable::setTime()
Estilo orientado a objetos
<?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";
?>El resultado de los ejemplos sería algo similar a:
2001-01-01 14:55:00 2001-01-01 14:55:24
Ejemplo #2 Valores que exceden los rangos se añaden a sus valores padres
<?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";
?>El resultado del ejemplo sería:
2001-01-01 14:55:24 2001-01-01 14:56:05 2001-01-01 15:05:24 2001-01-02 01:55:24