参考这个问题的已接受答案:如何在JavaScript中获取两个日期之间的天数?。我看到,在parseDate
函数中:
function parseDate(str) {
var mdy = str.split('/')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}
他正在做这件事情:
var mdy = str.split('/')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
即将传递的日期按月、日和年分割,然后将其传递给
Date
,例如new Date(year, month, day)
,而实际上他可以直接使用new Date(str)
,它会返回相同的结果(是吗?)。有人可以解释一下两种方式之间的区别吗?更新:测试结果:
var str = '1/1/2000'
var mdy = str.split('/')
console.log( new Date(str) ) // Sat Jan 01 2000 00:00:00 GMT+0500 (Pakistan Standard Time)
console.log( new Date(mdy[2], mdy[0]-1, mdy[1]) ); // Sat Jan 01 2000 00:00:00 GMT+0500 (Pakistan Standard Time)
mdy[0]-1
),因为新的Date(str)
需要(按标准)仅接受特定格式的日期(年/月/日,请参见此帖子),而且他们使用了特定语言环境规则进行解析(月/日/年)。老实说,我甚至不会使用该代码进行解析(因为是的,对于不同的语言环境,它实际上会出错)。 - Adriano Repetti