将Postgres间隔转换为PHP DateInterval

时间:2019-02-01 08:49:00

标签: php postgresql date dateinterval

我正在将值保存到Postgres10 interval类型字段中。

返回字段时,我得到以下信息:3 years 10 mons 1 day 02:18:00

我似乎主要遇到的问题是,如果持续时间不长年数月,它也会返回1 day 02:18:00

是否有一种干净的方法将此值转换为PHP DateInterval对象?

我认为我可以使用正则表达式,但对我来说似乎有点混乱。

1 个答案:

答案 0 :(得分:1)

如果使用

将间隔输出样式更改为iso_8601
SET intervalstyle = 'iso_8601';

您将获得正确格式的输出,例如调用DateInterval::__construct

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

输出:

interval
P6Y5M4DT3H2M1S

Demo on dbfiddle