问题就是这么说。
> var x = new Date('1/1/2012')
undefined
> x
Sun Jan 01 2012 00:00:00 GMT-0600 (Central Standard Time)
> new Date(1900+x.getYear(),x.getMonth(),x.getDay())
Sat Dec 31 2011 00:00:00 GMT-0600 (Central Standard Time)
为什么失去24小时?这很容易解决,但我很好奇它为什么会发生。
答案 0 :(得分:1)
Date.getDay()
获取星期几(0-6)。您想要使用的是Date.getDate()
,它将返回日期(1-31)。
要回答您的问题,丢失的一天来自0
的{{1}}值,因为该日恰好是星期日。在x.getDay()
的{{1}}参数中使用零值时,结果会减去一天。
答案 1 :(得分:1)
getMonth()
方法根据当地时间返回指定日期的月份,作为从零开始的值(其中零表示一年中的第一个月)。
getDay()
方法根据本地时间返回指定日期的星期几,其中0代表星期日。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#Methods_2
> x.getMonth()
< 0
> x.getDay()
< 0