2010-02-25 4 views
3

J'essaie d'effectuer des manipulations de date en utilisant JavaScript sur une seule ligne, et j'ai des problèmes avec l'année (pas le mois ou le jour). J'ai eu l'idée de cette link. Est-ce que je manque quelque chose?Ajouter des dates en JavaScript en une ligne

Le code est le suivant:

var newyear = new Date((new Date()).getYear(), (new Date()).getMonth(), (new Date()).getDate()+5).getFullYear(); 
document.write(newyear); 

Cela me donne "110".

Je ne sais pas pourquoi? Merci!

+0

Pourquoi 'newyear' seulement 5 jours après maintenant? – kennytm

+0

Curieusement, fonctionne dans IE 7, ce qui donne "2010". Je n'ai pas pris la peine de tester dans d'autres navigateurs. – jball

+0

@jball: Oui. IE est toujours celui qui se démarque. – kennytm

Répondre

1
var newyear = new Date((new Date()).getFullYear(), (new Date()).getMonth(), (new Date()).getDate()+5).getFullYear(); 
0

bug Y2K côté, ceci est une expression plus simple:

var newyear = new Date(new Date().setDate(new Date().getDate()+5)).getFullYear() 

objets de date sont relativement chers et vous pouvez le faire avec un seul objet Date et moins de code si vous ne présumez pas qu'il a être une seule expression.

var d = new Date(); d.setDate(d.getDate()+5); var newyear = d.getFullYear() 
Questions connexes