Javascript date.getYear() returns 111 in 2011?

JavascriptDatepicker

Javascript Problem Overview


I have this javascript for automatically setting a date filter to the first and last day of the previous month:

$(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 now.getYear() is returning 111 instead of the expected 2011. Is there something obvious I've missed?

Javascript Solutions


Solution 1 - Javascript

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

> getYear is no longer used and has been replaced by the getFullYear method. > > The getYear method returns the year minus 1900; thus: > > - For years greater than or equal to 2000, the value returned by getYear is 100 or greater. For example, if the year is 2026, getYear returns 126. > - For years between and including 1900 and 1999, the value returned by getYear is between 0 and 99. For example, if the year is 1976, getYear returns 76. > - For years less than 1900, the value returned by getYear is less than 0. For example, if the year is 1800, getYear returns -100. > - To take into account years before and after 2000, you should use getFullYear instead of getYear so that the year is specified in full.

Solution 2 - Javascript

In order to comply with boneheaded precedent, getYear() returns the number of years since 1900.

Instead, you should call getFullYear(), which returns the actual year.

Solution 3 - Javascript

From what I've read on Mozilla's JS pages, getYear is deprecated. As pointed out many times, getFullYear() is the way to go. If you're really wanting to use getYear() add 1900 to it.

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJK.View Question on Stackoverflow
Solution 1 - JavascriptdecezeView Answer on Stackoverflow
Solution 2 - JavascriptSLaksView Answer on Stackoverflow
Solution 3 - JavascriptPazuzu156View Answer on Stackoverflow