月份为什么不用减去1,也能正常显示月份?
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>员工合同到期时间</title>
</head>
<body>
<script>
var year=parseInt(prompt("请输入员工的入职年份"));
var month=parseInt(prompt("请输入员工的入职月份"));
var date=parseInt(prompt("请输入员工的入职时间"));
function deadline(y,m,d){
var staffTime=new Date(y,m,d);
document.write("该员工的入职时间是:"+staffTime.getFullYear()+'-'+staffTime.getMonth()+'-'+staffTime.getDate()+"<br/>");
var targetTime=new Date(y+3,m,d);
document.write("该员工合同到期时间是:"+targetTime.getFullYear()+'-'+targetTime.getMonth()+'-'+targetTime.getDate());
}
deadline(year,month,date);
</script>
</body>
</html>以上代码,比如我输入2018.10.1,按照课程提到的get/setMonth()都是使用0-11,应该得到的是2018.11.1才对吧。还是Date对象里的参数是不需要减去1的?
0
收起
正在回答
1回答
经测试输入1-11之间的月份是没有问题的,因为月份计算是0-11,假如你输入的是10月,那么new Date()设置的时候,记录月份为11月,最后使用getMonth()输出来的时候表现形式是0-11,也就是10月,所以是没有问题的。但是如果输入2018-12-10,结果为:

这样就会有问题了,所以需要在new Date()的时候月份减去1,输出的时候再加上1,如下:

自己动手测试理解下。
祝学习愉快!
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星