(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.
Retorna un nuevo objeto DateTimeImmutable con los datos modificados.
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";
?>
Los ejemplos anteriores mostrarán 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 ejemplo anterior mostrará :
2001-01-01 14:55:24 2001-01-01 14:56:05 2001-01-01 15:05:24 2001-01-02 01:55:24