我有这个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);
});
但是now.getYear()
正在返回111而不是预期的2011年。是否有一些我错过的明显内容?
答案 0 :(得分:274)
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.例如,如果年份为1800,getYear
将返回-100。- 要考虑2000年之前和之后的年份,您应该使用
getFullYear
代替getYear
,以便全年指定年份。
答案 1 :(得分:31)
为了遵守愚蠢的先例,getYear()
返回自1900年以来的年数。
相反,你应该调用getFullYear()
,它会返回实际年份。
答案 2 :(得分:5)
根据我在Mozilla的JS页面上看到的内容,不推荐使用getYear。正如多次指出的那样,getFullYear()
是要走的路。如果您真的想使用getYear()
添加1900。
var now = new Date(),
year = now.getYear() + 1900;