Javascript date.getYear() возвращает 111 в 2011 году?
У меня есть этот 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 года. Есть ли что-то очевидное, что я пропустил?
Ответы
Ответ 1
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
, чтобы весь год был указан полностью.
Ответ 2
Чтобы соответствовать прецеденту с головным мозгом, getYear()
возвращает количество лет с 1900 года.
Вместо этого вы должны вызвать getFullYear()
, который возвращает текущий год.
Ответ 3
Из того, что я читал на страницах Mozilla JS, getYear устарел. Как указывалось много раз, getFullYear()
- это путь. Если вы действительно хотите использовать getYear()
добавить к нему 1900.
var now = new Date(),
year = now.getYear() + 1900;