Javascript date.getYear () zwraca 111 w 2011 roku? [duplikat]
To pytanie ma już odpowiedź tutaj:
- Dlaczego Javascript getYear () zwraca 108? 14 odpowiedzi
Mam ten javascript do automatycznego ustawiania filtra daty na pierwszy i ostatni dzień poprzedniego miesiąca:
$(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);
});
Ale now.getYear()
zwraca 111 zamiast oczekiwanego 2011. Czy jest coś oczywistego, co przegapiłem?
3 answers
Https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date/getYear
getYear
nie jest już używana i została zastąpiona metodągetFullYear
.Metoda
getYear
zwraca rok minus 1900; zatem:
- dla lat większych lub równych 2000, wartość zwracana przez
getYear
wynosi 100 lub więcej. Na przykład, jeśli rokiem jest 2026,getYear
zwraca 126.- w latach od 1900 do 1999 włącznie wartość zwracane przez
getYear
wynosi od 0 do 99. Na przykład, jeśli rokiem jest 1976,getYear
zwraca 76.- dla lat mniejszych niż 1900 wartość zwracana przez
getYear
jest mniejsza niż 0. Na przykład, jeśli rok wynosi 1800,getYear
zwraca -100.- aby uwzględnić lata przed i po roku 2000, należy użyć
getFullYear
zamiastgetYear
, aby Rok był w pełni określony.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-21 02:55:42
W celu spełnienia boneheaded precedens, getYear()
zwraca liczbę lat od 1900 roku.
Zamiast tego należy wywołać getFullYear()
, który zwraca rzeczywisty rok.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-21 02:54:50
Z tego, co czytałem na stronach js Mozilli, getYear jest przestarzały. Jak wielokrotnie podkreślano, {[1] } jest drogą do zrobienia. Jeśli naprawdę chcesz użyć getYear()
Dodaj do niego 1900.
var now = new Date(),
year = now.getYear() + 1900;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-01 22:10:37