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.
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