Javascript 的 Date 不像你期望的那样工作。但是你的python代码是正确的。
根据纪元时间列表,纪元时间应为 2010 年 1 月 1 日
1262304000
Python:(似乎是正确的)
>>> (datetime(2010,1,1) - datetime(1970,1,1)).total_seconds()
1262304000.0
Javascript(似乎是错误的)
> new Date(2010,1,1).getTime()
1265011200000
或者
> new Date(2010,1,1).getTime()/1000
1265011200
这是因为 Javascript 日期没有按照您期望的方式创建日期。首先,它以您当前的时区而不是 UTC 创建日期。因此,javascript 中的“获取当前时间”将是客户端时间,而 python 将返回 utc 时间。另请注意,JS Date 中有一个错误,其中月份实际上是基于 0 而不是基于 1。
> new Date(2010,1,1,0,0,0,0)
Date 2010-02-01T08:00:00.000Z
> new Date(2010,0,1,0,0,0,0)
Date 2010-01-01T08:00:00.000Z
Javascript 可以从一个纪元时间创建一个日期:
> new Date(1262304000000)
Date 2010-01-01T00:00:00.000Z
哪个是对的。
或者,您可以使用以下 JS 函数来获得更准确的时间请注意,月份仍然从 0 开始,而不是 1
> Date.UTC(2010,0,1)
1262304000000