意外的 javascript 日期行为

IT技术 javascript
2021-02-09 00:15:52

我有以下代码:

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个回答

.getMonth()是基于零的。如在0=January11=December

尝试

var month=newDate.getMonth() + 1;

.getMonth()是基于零的。一月对应0,二月对应1,以此类推。

截至本问题的时间,月份是五月,因此.getMonth()返回4

你要.getMonth() + 1

@Dutchie432:同上!jlisham:不客气 - 我很高兴它有所帮助。
2021-03-19 00:15:52
谢谢!我将前一个标记为答案只是因为它是第一个 - 显然你的同样有效!
2021-03-26 00:15:52
欢迎使用堆栈溢出!你会考虑添加一些叙述来解释为什么这段代码有效,是什么使它成为问题的答案?
2021-04-05 00:15:52