Управление временем в PHP: добавление и вычитание 30 минут из H:i
В PHP обработка задач, связанных со временем, имеет решающее значение для различных приложения. Один из распространенных сценариев предполагает изменение значений времени в формате «H:i». Этот формат представляет время в часах и минутах, например «10:00» или «13:30».
Чтобы добавить или вычесть определенные интервалы времени из таких значений, мы можем использовать функции strtotime() и date( ) функции. Однако может возникнуть непредвиденное поведение, если исходное значение времени не отформатировано соответствующим образом как метка времени.
Давайте рассмотрим пример, в котором мы хотим создать два новых значения: $startTime за 30 минут до $time и $endTime 30. минут после $time, где $time имеет формат «H:i».
Приведенный ниже фрагмент кода на первый взгляд может показаться разумным:
$startTime = date("H:i",strtotime('-30 minutes',$time));
$endTime = date("H:i",strtotime(' 30 minutes',$time));
Однако после передачи "10:00" в качестве $time мы сталкиваемся с неожиданными результатами: $startTime становится «00:30» вместо запланированного «09:30», и $endTime становится «01:30» вместо «10:30».
Ключевая проблема заключается в первоначальном предположении, что $time временная метка. Однако это всего лишь строка в формате «H:i». Чтобы решить эту проблему, мы должны сначала преобразовать $time в метку времени с помощью функции strtotime().
Исправленный код:
$time = strtotime('10:00');
$startTime = date("H:i", strtotime('-30 minutes', $time));
$endTime = date("H:i", strtotime(' 30 minutes', $time));
Теперь результаты соответствуют нашим ожиданиям: $startTime становится "09:30", а $endTime становится «10:30». Убедившись, что $time с самого начала является меткой времени, мы можем выполнять точные манипуляции со временем в PHP.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3