Javascript date.getYear()在2011年返回111?

我有这个JavaScript自动设置一个datefilter到上个月的第一天和最后一天:

$(document).ready(function () { $("#DateFrom").datepicker({ dateFormat: 'dd/mm/yy' }); $("#DateTo").datepicker({ dateFormat: 'dd/mm/yy' }); var now = new Date(); var firstDayPrevMonth = new Date(now.getYear(), now.getMonth() - 1, 1); var firstDayThisMonth = new Date(now.getYear(), now.getMonth(), 1); var lastDayPrevMonth = new Date(firstDayThisMonth - 1); $("#DateFrom").datepicker("setDate", firstDayPrevMonth); $("#DateTo").datepicker("setDate", lastDayPrevMonth); }); 

now.getYear()返回111,而不是预期的2011年。是否有什么明显的我错过了?

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear

getYear不再被使用,并被getFullYear方法取代。

getYear方法返回年份减去1900; 从而:

  • 对于大于或等于2000年的年份, getYear返回的值为100或更大。 例如,如果年份是2026年, getYear返回126。
  • 对于1900年和1999年之间的年份, getYear返回的值介于0到99之间。例如,如果年份是1976, getYear返回76。
  • 对于小于1900的年份, getYear返回的值小于0.例如,如果year为1800, getYear返回-100。
  • 考虑到2000年之前和之后的几年,您应该使用getFullYear而不是getYear以便全年指定年份。

为了遵守骨头的先例, getYear()返回自1900年以来的年数。

相反,你应该调用getFullYear() ,它返回实际的年份。

从我读过的Mozilla的JS页面中,getYear已经被弃用了。 正如很多时候指出的那样, getFullYear()是要走的路。 如果你真的想使用getYear()将1900添加到它。

 var now = new Date(), year = now.getYear() + 1900;