(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.
hourHora do horário.
minuteMinuto do horário.
secondSegundo do horário.
microsecondMicrossegundo 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