Intereting Posts
Добавление пространства имен в файл Zend_Feed_Writer_Feed Вывод формата $ SimpleXML-> asXML (); Как найти среднее значение из массива в php? Как проанализировать facebook api XML онлайн, чтобы получить «понравившийся» счет? Автоматически удалять запись в таблице, когда дата истекла? Функция питания в php для вычисления 17 ^ 2147482999 MySQL – Объединение INSERT, VALUES и SELECT? Как я могу создать успешную фабрику объектов домена в PHP PHPUnit – создание объектов Mock для работы в качестве заглушек для свойств Должен ли я использовать фреймворк или написать свой собственный MVC? php: SQLSTATE Соединение не может быть выполнено, потому что целевая машина активно отказалась от него Можем ли мы сохранить данные ckeditor в файл doc Конфигурация Xdebug с PHP fastcgi и eclipse? Проверять последовательные даты в наборе и возвращать как диапазон Отображение таблицы в PHP с повторяющимися столбцами

Как создать DateInterval из строки времени

Если у меня есть формат времени, например «14:30:00» («часы: минуты: секунды»), как мне получить DateInterval из строки?

Я могу получить DateTime:

$datetime= DateTime::createFromFormat("H:i:s","14:30:00"); 

Но мне нужно добавить его к другому объекту DateTime, а date_add нужен DateInterval.

Solutions Collecting From Web of "Как создать DateInterval из строки времени"

Если вам нужен интервал, составляющий 14 часов и 30 минут, просто используйте конструктор …

 $interval = new DateInterval('PT14H30M'); 

Разбить его …

  • P – все интервальные спецификации должны начинаться с P (для периода ). Мы не используем интервалы времени, хотя так …
  • T – это запускает спецификацию Time
  • 14 часов – 14 часов
  • 30M – 30 минут

Если вы должны использовать строку 14:30:00 , я бы проанализировал ее с помощью sscanf и использовал детали …

 list($hours, $minutes, $seconds) = sscanf('14:30:00', '%d:%d:%d'); $interval = new DateInterval(sprintf('PT%dH%dM%dS', $hours, $minutes, $seconds));