2010-02-25 34 views
3

我试图在单行上使用JavaScript执行日期操作,并且遇到了年份(而不是月份或日期)的问题。我从这个link得到了想法。我错过了什么吗?在一行中添加JavaScript日期

的代码如下:

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

这给了我 “110”。

我不知道为什么? 谢谢!

+0

为什么现在只有5天'newyear'? – kennytm 2010-02-25 21:13:51

+0

奇怪的是,在IE 7中工作,产生“2010”。没有打扰过在其他浏览器中测试。 – jball 2010-02-25 21:15:50

+0

@jball:是的。 IE总是一个突出的。 – kennytm 2010-02-25 21:17:51

回答

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

千年虫问题不谈,这是一个简单的表达式:

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

日期对象是相对昂贵的,你可以用一个Date对象和更少的代码做到这一点,如果你不认为它有成为一个单一的表达。

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