(PHP 5 >= 5.5.0, PHP 7, PHP 8)
DateTimeImmutable::setTime — Define um horário
$hour
,$minute
,$second
= 0,$microsecond
= 0Retorna um novo objeto DateTimeImmutable configurado com o horário fornecido.
hour
Hora do horário.
minute
Minuto do horário.
second
Segundo do horário.
microsecond
Microssegundo do horário.
Retorna um novo objeto DateTimeImmutable com os dados modificados.
Versão | Descrição |
---|---|
8.1.0 | O comportamento com horários que podem ter duplicidade (durante o retorno do horário de verão) mudou. Anteriormente, o PHP usaria a segunda ocorrência do horário (depois do retorno do horário de verão), em vez da primeira ocorrência (antes do retorno). |
7.1.0 | O parâmetro microsecond foi incluído. |
Exemplo #1 Exemplo da função 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";
?>
Os exemplos acima produzirão algo semelhante a:
2001-01-01 14:55:00 2001-01-01 14:55:24
Exemplo #2 Valores que excedem os limites são adicionados a seus valores pai
<?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";
?>
O exemplo acima produzirá:
2001-01-01 14:55:24 2001-01-01 14:56:05 2001-01-01 15:05:24 2001-01-02 01:55:24