"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Ao lidar com formatos de hora em PHP, como podemos evitar resultados inesperados?

Ao lidar com formatos de hora em PHP, como podemos evitar resultados inesperados?

Publicado em 19/11/2024
Navegar:839

When Handling Time Formats in PHP, How Can We Avoid Unexpected Results?

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.

Declaração de lançamento Este artigo foi reimpresso em: 1729223781 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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