PHP的strtotime和PostgreSQL的EXTRACT(EPOCH FROM ...生成不同的输出

时间:2015-12-08 17:21:57

标签: php postgresql import export thrift

我将数据库中的数据发送到此第三方系统。当我使用PHP的strtotime * 1000:

时,它只能正确导入日期
$data = strtotime('2015-12-08 15:12:16') * 1000; // output: 1449594736000

我想只使用我的PostgreSQL数据库生成所有数据,而不使用PHP。所以我试了一下:

SELECT EXTRACT(EPOCH FROM '2015-12-08 15:12:16'::DATE) * 1000; -- output: 1449532800000

通过使用这种PostgreSQL方式,第三方系统导入日期错误。

如何使用PostgreSQL数据库生成PHP生成的相同输出?

可能导致这种差异的原因是什么?

1 个答案:

答案 0 :(得分:0)

看起来您需要将数据转换为UTC +2

中的时间戳
# SELECT EXTRACT(EPOCH FROM '2015-12-08 15:12:16'::timestamp without time zone + interval '2 hour')*1000;
   ?column?    
---------------
 1449594736000
(1 row)