Библиотека и веб-сервис, который я использую, обмениваются временными интервалами в ISO 8601: PnYnMnDTnHnMnS. Я хочу преобразовать такие форматы в несколько секунд. И наоборот. Секунды намного проще вычислять с помощью.
Пример значений интервала:
- PT1M или PT60S (1 минута)
- PT1H, PT60M или PT3600S (1 час)
Мне нужны две функции: синтаксический анализ от таких значений до секунд: iso8601_interval_to_seconds()
и от секунд до таких интервалов: iso8601_interval_from_seconds()
.
Последнее довольно просто, потому что это можно сделать как "PT {$ seconds} S", просто пропустите секунды вдоль, всегда. Может быть, это можно сделать лучше с парсером, который переключается на H (час) или M (минута)?
В первую очередь сложнее, но, может быть, есть трюк с одним из многих современных преобразователей в PHP? Мне бы хотелось узнать, как использовать такую функцию для парсинга. Или изучите альтернативу.