从不同时间从毫秒到Unix时间戳的转换给出相同的结果

时间:2013-05-20 15:42:34

标签: javascript date timestamp epoch

我有两个变量:

tempTimeRequests timeLastUpdateRequests

两者都是以纪元为单位的毫秒数。

我面临来自js的奇怪行为:

我得到的结果

alert(
    tempTimeRequests+"\n"+
    timeLastUpdateRequests+"\n"+
    Date(tempTimeRequests)+"\n"+
    Date(timeLastUpdateRequests)
)

1369063665000
1369063651000
Mon May 20 2013 17:27:51 GMT+0200 (CEST)
Mon May 20 2013 17:27:51 GMT+0200 (CEST)

为什么如果第二个显然有51秒(给出正确的结果)但是第一个显然有65秒(这会给出05秒),我的秒数值是否相同? 我真是吓坏了。

2 个答案:

答案 0 :(得分:4)

Date构造函数作为函数调用将返回当前日期。

来自specification

  

15。9。2日期构造函数被称为函数

     

当Date作为函数而不是构造函数调用时,它返回表示当前时间(UTC)的字符串。

     

注意函数调用Date(…) 等效于具有相同参数的对象创建表达式new Date(…)

这与使用符合预期的new Date不同。

答案 1 :(得分:3)

这应解决问题

alert(
  tempTimeRequests+"\n"+
  timeLastUpdateRequests+"\n"+
  new Date(tempTimeRequests)+"\n"+
  new Date(timeLastUpdateRequests) 
)