"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo comparar tiempos en PHP: una guía completa

Cómo comparar tiempos en PHP: una guía completa

Publicado el 2024-11-09
Navegar:481

How to Compare Times in PHP: A Comprehensive Guide

Comparaciones de tiempos en PHP: una guía detallada

Comparar tiempos en PHP puede ser una tarea difícil de dominar. Este artículo proporcionará una explicación completa de cómo comparar tiempos de forma eficaz utilizando varios métodos.

Limitación de la solución actual

El fragmento de código proporcionado en la pregunta, donde intenta comparar $NowisTime con $ThatTime, falla porque la comparación es entre cadenas. La comparación de cadenas de PHP no tiene en cuenta las diferencias horarias correctamente.

Solución usando marcas de tiempo

Un enfoque confiable es convertir ambas horas en marcas de tiempo usando mktime() o strtotime () y luego realizar una comparación numérica. El siguiente código revisado demuestra esto:

$ThatTime = "14:08:10";
if (time() >= strtotime($ThatTime)) {
  echo "ok";
}

En este caso, time() devuelve la marca de tiempo actual y strtotime() convierte $ThatTime en una marca de tiempo. La comparación ahora es sencilla y precisa.

Solución usando DateTime (con reconocimiento de zona horaria)

La clase DateTime de PHP permite comparaciones horarias más sofisticadas que tienen en cuenta las zonas horarias. Así es como puedes utilizarlo:

$dateTime = new DateTime($ThatTime);
if ($dateTime->diff(new DateTime)->format('%R') == ' ') {
  echo "OK";
}

El método diff() calcula la diferencia entre dos objetos DateTime y el método format() la devuelve en un formato específico, como '%R' aquí para indicar una diferencia positiva o negativa.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3