Manipulación del tiempo en PHP: sumar y restar 30 minutos de H:i
En PHP, el manejo de tareas relacionadas con el tiempo es crucial para varios aplicaciones. Un escenario común implica modificar valores de tiempo formateados como "H:i". Este formato representa el tiempo en horas y minutos, como "10:00" o "13:30".
Para sumar o restar intervalos de tiempo específicos de dichos valores, podemos utilizar strtotime() y date( ) funciones. Sin embargo, puede ocurrir algún comportamiento inesperado si el valor de tiempo inicial no tiene el formato apropiado como marca de tiempo.
Consideremos un ejemplo en el que pretendemos crear dos valores nuevos: $startTime 30 minutos antes de $time y $endTime 30 minutos después de $time, donde $time tiene el formato "H:i".
El siguiente fragmento de código puede parecer inicialmente razonable:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
Sin embargo, al pasar "10:00" como $time, encontramos resultados inesperados: $startTime se convierte "00:30" en lugar de las "09:30" previstas, y $endTime se convierte en "01:30" en lugar de "10:30".
La cuestión clave radica en la suposición inicial de que $time es una marca de tiempo. Sin embargo, es simplemente una cadena con el formato "H:i". Para resolver esto, primero debemos convertir $time en una marca de tiempo usando la función strtotime().
El código corregido:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
Ahora, los resultados se alinean con nuestras expectativas: $startTime se convierte en "09:30" y $endTime se convierte en "10:30". Al asegurarnos de que $time sea una marca de tiempo desde el principio, podemos realizar manipulaciones de tiempo precisas en PHP.
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