«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как при обработке форматов времени в PHP можно избежать неожиданных результатов?

Как при обработке форматов времени в PHP можно избежать неожиданных результатов?

Опубликовано 19 ноября 2024 г.
Просматривать:549

When Handling Time Formats in PHP, How Can We Avoid Unexpected Results?

Управление временем в 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.

Заявление о выпуске Эта статья перепечатана по адресу: 1729223781. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить их.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3