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

2022-08-30 01:53:50

我有这个javascript,用于自动将日期过滤器设置为上个月的第一天和最后一天:

$(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);
}); 

BUT将返回111,而不是预期的2011年。我错过了什么明显的东西吗?now.getYear()


答案 1

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

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

该方法返回减去 1900 的年份;因此:getYear

  • 对于大于或等于 2000 的年份,返回的值为 100 或更大。例如,如果年份为 2026,则返回 126。getYeargetYear
  • 对于介于 1900 年和 1999 年之间的年份(包括 1900 年和 1999 年),返回的值介于 0 和 99 之间。例如,如果年份是 1976,则返回 76。getYeargetYear
  • 对于小于 1900 的年份,返回的值小于 0。例如,如果年份为 1800,则返回 -100。getYeargetYear
  • 要考虑 2000 年之前和之后的年份,应使用而不是完整指定年份。getFullYeargetYear

答案 2

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

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