我原以为这两个语句会返回相同的值:
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
答案 0 :(得分:1)
new Date(2018, 3, 1) = Sun Apr 01 2018
四月,而不是三月