2012-05-22 45 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