Javascript 新日期的问题

Javascript 新日期的问题,javascript,arrays,date,Javascript,Arrays,Date,我有以下创建新对象的代码: 职能人员(名、姓、出生){ this.name=firstname+“”+lastname; this.bdate={ 年份:出生。getFullYear(), 日期:birth.getDate(), 月份:“一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月”。拆分(“,”[birth.getMonth()-1], monthnumber:birth.getMonth(), } this.age=新日期().getFullYear()-bi

我有以下创建新对象的代码:

职能人员(名、姓、出生){
this.name=firstname+“”+lastname;
this.bdate={
年份:出生。getFullYear(),
日期:birth.getDate(),
月份:“一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月”。拆分(“,”[birth.getMonth()-1],
monthnumber:birth.getMonth(),
}
this.age=新日期().getFullYear()-birth.getFullYear();
}
var foo=新人(“Jon”,“Doe”,新日期(1996年12月5日));

console.log(foo)月份以零为基础。因此,数组偏移量是错误的,必须增加/减少月份

职能人员(名、姓、出生){
this.name=firstname+“”+lastname;
this.bdate={
年份:出生。getFullYear(),
日期:birth.getDate(),
月份:“一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月”。拆分(“,”[birth.getMonth()”,
monthnumber:birth.getMonth()+1,
}
this.age=新日期().getFullYear()-birth.getFullYear();
}
var foo=新人(“Jon”,“Doe”,新日期(1996年11月5日));

console.log(foo)
12
不是有效月份。如果你想要12月,它应该是新的日期(1996年11月5日)
。有没有办法总是减少/增加月份?如
新日期(1996,12,5)
变为
新日期(1996,11,5)
?@adddff当您从现有日期开始时,使用setMonth;构成日期的组件的set方法考虑了内置的“溢出”。@adddff您可以传递值而不是日期对象,然后在构造函数中使用offset@cbroe这与问题无关。一个月(12);不会将月份设置为12月…@Jonasw,这是关于adddff的评论。如果他们不想在某个时候对输入数据进行正确的验证(听起来他们在寻找一种方法来避免这种情况),那么setDate(12)将自动为您提供明年1月的数据。这是否有助于他们,是否是最好的方式(我投票赞成适当的验证),取决于他们。