月份为什么不用减去1,也能正常显示月份?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <!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积分~
来为老师/同学的回答评分吧