new Date(..)。getTime()不等于momentJS中的moment(..)。valueOf()?

时间:2015-07-14 08:22:48

标签: javascript momentjs

moment(..).valueOf()应该以毫秒为单位返回时间戳。根据{{​​3}},表达式var timeStampDate = new Date("2015-03-25").getTime(); //timestamp in milliseconds? > 1427241600000 var timeStampMoment = moment("03-25-2015", "MMDDYYYY").valueOf(); //timestamp in milliseconds? > 1427238000000 应该执行相同的(返回给定日期的时间戳,以毫秒为单位)

我查看了以下示例数据:

new Date(..).getTime()

正如您所看到的结果不一样。

现在,我正在 momentJS 中搜索一个函数,该函数返回与表达式adb shell完全相同的数据。

2 个答案:

答案 0 :(得分:31)

日期构造函数doc

  

UTC时区用于解释ISO 8601格式的参数   不包含时区信息

时刻构造函数doc

  

除非您指定时区偏移量,否则解析字符串将在当前时区中创建日期

因此,指定时刻构造函数中的时区会产生与Date相同的行为:

var timeStampMoment = moment("03-25-2015 +0000", "MM-DD-YYYY Z").valueOf(); //> 1427241600000

答案 1 :(得分:4)

当您将相同的值传递给“日期和时刻”时(至少在Chrome中启用了几年),您会从这两个值中获得相同的值。

new Date("2015-03-25").getTime()
1427241600000
moment("03-25-2015", "MMDDYYYY").valueOf()
1427259600000
new Date("03-25-2015").getTime()
1427259600000

您实际击中的内容只是对Date.parse中的日期格式的另一种猜测