2012-05-22 25 views
2

我有以下代码:意外的javascript日期的行为

var newDate=new Date('05/22/2012'); 
var month=newDate.getMonth(); 
var day=newDate.getDate()+(-2); 
var year=newDate.getYear(); 
document.write(month+'/'+day+'/'+year); 

我希望它返回'05/20/2012' ,而是它返回'04/20/2012'

这是没有对我有意义 - 有人可以帮助我了解发生了什么事以及如何得到正确的答案?

谢谢您的关注!

回答

8

.getMonth()是从零开始的。在0=January11=December

尝试

var month=newDate.getMonth() + 1; 
6

.getMonth()是从零开始的。 1月对应于0,2月1日等。

截至本问题发布时,月份为5月,因此.getMonth()返回4

你想要.getMonth() + 1

+0

GMTA我应该...... – Dutchie432

+0

@ Dutchie432:从我的确:) –

+0

+1的根本GENIUS答案;) – Dutchie432