Javascript 新日期(..).getTime()不等于momentJS中的时刻(..).valueOf()?

Javascript 新日期(..).getTime()不等于momentJS中的时刻(..).valueOf()?,javascript,momentjs,Javascript,Momentjs,新日期(..).getTime()应以毫秒为单位返回时间戳。根据表达式矩(..).valueOf()也应该这样做(以毫秒为单位返回给定日期的时间戳) 我使用以下示例数据进行了检查: var timeStampDate = new Date("2015-03-25").getTime(); //timestamp in milliseconds? > 1427241600000 var timeStampMoment = moment("03-25-2015", "MMDDYYYY").va

新日期(..).getTime()应以毫秒为单位返回时间戳。根据表达式
矩(..).valueOf()
也应该这样做(以毫秒为单位返回给定日期的时间戳)

我使用以下示例数据进行了检查:

var timeStampDate = new Date("2015-03-25").getTime(); //timestamp in milliseconds?
> 1427241600000
var timeStampMoment = moment("03-25-2015", "MMDDYYYY").valueOf(); //timestamp in milliseconds?
> 1427238000000
正如你所看到的,结果是不一样的

现在,我正在momentJS中搜索一个函数,该函数返回的数据与表达式
新日期(..)的数据完全相同。getTime()
日期构造函数:

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

力矩构造器:

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

因此,在矩构造函数中指定时区会导致与日期相同的行为:

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

当您将相同的值传递到日期和时刻(至少在几年后的Chrome中),您将从这两个值中获得相同的值

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

您实际遇到的只是对

中日期格式的不同猜测,这并不能解决您的问题,但一般来说,最好让格式字符串与输入格式匹配:
时刻(“03-25-2015”,“MM-DD-YYYY”)
感谢您的解释