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
完全相同的数据。
答案 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中的日期格式的另一种猜测