Javascript date.getYear () zwraca 111 w 2011 roku? [duplikat]

To pytanie ma już odpowiedź tutaj:

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?

Author: JK., 2011-01-21

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 zamiast getYear, aby Rok był w pełni określony.
 263
Author: deceze,
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.

 31
Author: SLaks,
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;
 4
Author: Pazuzu156,
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