Преобразовать интервал Postgres в PHP DateInterval - PullRequest
0 голосов
/ 01 февраля 2019

Я сохраняю значение в поле типа Postgres10 interval.

Когда я возвращаю поле, я получаю следующее: 3 years 10 mons 1 day 02:18:00

Проблема, которая у меня возниклав основном это то, что он также вернет 1 day 02:18:00, если продолжительность не будет длиться годами и месяцами.

Есть ли чистый способ преобразовать это значение в объект PHP DateInterval?

IЯ могу использовать регулярные выражения, но мне это кажется немного грязным.

1 Ответ

0 голосов
/ 01 февраля 2019

Если вы измените стиль вывода интервала на iso_8601, используя

SET intervalstyle = 'iso_8601';

Вы получите вывод в правильном формате для вызова на DateInterval::__construct например,

SELECT
 INTERVAL '6 years 5 months 4 days 3 hours 2 minutes 1 second';

Вывод:

interval
P6Y5M4DT3H2M1S

Демонстрация на dbfiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...