JavaScript date.getYear()在2011年返回111吗?[重复]

2020/10/25 08:01 · javascript ·  · 0评论

我有这个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()返回的不是预期的2011年的111。我是否错过了明显的事情?

https://developer.mozilla.org/zh-CN/JavaScript/Reference/Global_Objects/Date/getYear

getYear不再使用,并已由getFullYear方法替换

getYear方法返回年份减去1900;否则返回0。从而:

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

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

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

根据我在Mozilla的JS页面上阅读的内容,不赞成使用getYear。正如多次指出的那样,getFullYear()是要走的路。如果您确实要使用,请getYear()向其添加1900。

var now = new Date(),
    year = now.getYear() + 1900;
本文地址:http://javascript.askforanswer.com/javascript-date-getyearzai2011nianfanhui111mazhongfu.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!