我对以下脚本的结果感到困惑,并且我不明白为什么是这样:
enddate = '01-02-2020'; //euro format dd-mm-yyyy
datesplit = enddate.split("-");
console.log("datesplit: ", datesplit); //[ '01', '02', '2020' ]
console.log(datesplit[2]); // 2020
console.log(datesplit[1]); // 02
console.log(datesplit[0]); // 01
enddate1 = new Date(datesplit[2],datesplit[1],datesplit[0]);
console.log("enddate 1", enddate1); //output: 2020-03-01T05:00:00.000Z , but I'm expecting 2020-02-01T00:00:00.000Z
最后一个控制台日志输出是我无法理解的。我希望能解释一下为什么结果是正确的。
JavaScript将月份视为从零开始。因此,您必须拥有-1
月份价值才能获得正确的结果。正如@RobG所说,您应该使用new Date(Date.UTC(...))
UTC来获取日期
let endDate = '01-02-2020' // dd-mm-yyyy;
let [day, month, year] = endDate.split('-');
// Months are zero-based, so -1 to get the right month
month = month - 1;
console.log(day); // '01'
console.log(month);// 1
console.log(year); // '2020'
let newDate = new Date(Date.UTC(year, month, day));
console.log(newDate) // "2020-02-01T00:00:00.000Z"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句