月份为什么不用减去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 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星