意外的javascript日期行为

时间:2012-05-22 16:36:52

标签: 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'

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

感谢您的关注!

3 个答案:

答案 0 :(得分:8)

.getMonth()从零开始。与0=January11=December

中一样

var month=newDate.getMonth() + 1;

答案 1 :(得分:6)

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

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

您想要.getMonth() + 1

答案 2 :(得分:-1)