"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 > Como comparar tempos em PHP: um guia abrangente

Como comparar tempos em PHP: um guia abrangente

Publicado em 2024-11-09
Navegar:674

How to Compare Times in PHP: A Comprehensive Guide

Comparações de tempos em PHP: um guia detalhado

Comparar tempos em PHP pode ser uma tarefa difícil de dominar. Este artigo fornecerá uma explicação abrangente de como comparar tempos de maneira eficaz usando vários métodos.

Limitação da solução atual

O snippet de código fornecido na pergunta, onde você tenta compare $NowisTime com $ThatTime, falha porque a comparação é entre strings. A comparação de strings do PHP não leva em conta as diferenças de tempo corretamente. () e depois realizar uma comparação numérica. O código revisado a seguir demonstra isso:

$ThatTime = "14:08:10"; if (time() >= strtotime($ThatTime)) { eco "ok"; }Nesse caso, time() retorna o carimbo de data/hora atual e strtotime() converte $ThatTime em um carimbo de data/hora. A comparação agora é direta e precisa.

Solução usando DateTime (com reconhecimento de fuso horário)
$ThatTime = "14:08:10";
if (time() >= strtotime($ThatTime)) {
  echo "ok";
}

A classe DateTime do PHP permite comparações de tempo mais sofisticadas que levam em conta os fusos horários. Veja como você pode utilizá-lo:

$dateTime = new DateTime($ThatTime); if ($dateTime->diff(new DateTime)->format('%R') == ' ') { eco "OK"; }O método diff() calcula a diferença entre dois objetos DateTime, e o método format() a retorna em um formato específico, como '%R' aqui para indicar uma diferença positiva ou negativa.

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