164 votes

Javascript date.getYear () renvoie 111 en 2011?

J'ai ce javascript pour définir automatiquement un filtre de date au premier et dernier jour du mois précédent:

 $(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);
}); 
 

MAIS now.getYear() renvoie 111 au lieu de 2011. Y a-t-il quelque chose d'évident que j'ai manqué?

283voto

deceze Points 200115

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

getYear n'est plus utilisé et a été remplacé par l' getFullYear méthode.

L' getYear méthode retourne l'année, moins de 1900; ainsi:

  • Pendant des années, supérieure ou égale à 2000, la valeur renvoyée par getYear 100 ou plus. Par exemple, si l'année 2026, getYear retours 126.
  • Pendant des années entre 1900 et 1999, la valeur renvoyée par getYear est comprise entre 0 et 99. Par exemple, si l'année 1976, getYear retours 76.
  • Pendant des années, à moins de 1900, la valeur renvoyée par getYear est inférieur à 0. Par exemple, si l'année 1800, getYear retours -100.
  • Pour prendre en compte des années avant et après l'an 2000, vous devez utiliser getFullYear au lieu de getYear alors que l'année est indiquée en entier.

31voto

SLaks Points 391154

Afin de se conformer au précédent appelé boneheaded, getYear() renvoie le nombre d'années depuis 1900.

Au lieu de cela, vous devez appeler getFullYear() , qui renvoie l'année réelle.

6voto

Kaleb Klein Points 74

D'après ce que j'ai lu sur les pages JS de Mozilla, getYear est obsolète. Comme cela a été souligné à plusieurs reprises, getFullYear() est la voie à suivre. Si vous voulez vraiment utiliser getYear() ajoutez 1900 à cela.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X