Manipulação de tempo em PHP: adicionando e subtraindo 30 minutos de H:i
Em PHP, lidar com tarefas relacionadas ao tempo é crucial para vários aplicações. Um cenário comum envolve a modificação de valores de tempo formatados como “H:i”. Este formato representa o tempo em horas e minutos, como "10:00" ou "13:30."
Para adicionar ou subtrair intervalos de tempo específicos de tais valores, podemos utilizar os métodos strtotime() e date( ) funções. No entanto, algum comportamento inesperado pode ocorrer se o valor de tempo inicial não estiver formatado adequadamente como um carimbo de data/hora.
Vamos considerar um exemplo em que pretendemos criar dois novos valores: $startTime 30 minutos antes de $time e $endTime 30 minutos depois de $time, onde $time tem o formato "H:i."
O trecho de código abaixo pode inicialmente parecer razoável:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
No entanto, ao passar "10:00" como $time, encontramos resultados inesperados: $startTime torna-se "00:30" em vez do "09:30" pretendido e $endTime torna-se "01:30" em vez de "10:30."
A questão principal está na suposição inicial de que $time é um carimbo de data/hora. No entanto, é apenas uma string formatada como “H:i”. Para resolver isso, devemos primeiro converter $time em um carimbo de data/hora usando a função strtotime().
O código corrigido:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
Agora, os resultados se alinham com nossas expectativas: $startTime se torna "09:30" e $endTime torna-se "10:30". Garantindo que $time seja um carimbo de data/hora desde o início, podemos realizar manipulações de tempo precisas em PHP.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3