(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.
hour
Hora de la hora.
minute
Minuto de la hora.
second
Segundo de la hora.
microsecond
Microsegundo 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