JavaScript与Postgres Epoch的区别

时间:2018-04-11 07:03:37

标签: javascript postgresql datetime

我原以为这两个语句会返回相同的值:

Javascript(Chrome)

new Date(2018, 3, 1).getTime() /1000;
=> 1522533600

Postgres

SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE '2018-03-01 00:00:00 ');
=> 1519858800.0

正如您所看到的,存在巨大差异。我在这里缺少什么?

时区信息

两个查询都在同一时区执行,确认如下。

的Postgres

SELECT EXTRACT(TIMEZONE FROM now())/3600.0;
=> 2.0

Javascript

new Date().getTimezoneOffset();
-120

解决方案

谢谢你@yelliver和@Vao Tsun,问题是Javascript从零开始。确认:

new Date(2018, 2, 1).getTime() /1000;
=> 1519858800

1 个答案:

答案 0 :(得分:1)

new Date(2018, 3, 1)  = Sun Apr 01 2018

四月,而不是三月