月份加1的问题
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type= "text/javascript" > var year=parseInt(prompt( "请输入入职的年" )); var month=parseInt(prompt( "请输入入职的月" )); var date=parseInt(prompt( "请输入入职的日" )); function staff(year,month,date){ var now= new Date(year,month,date); var after= new Date(year+3,month,date); document.write( "该员工入职时间是: " + year+ '-' +month+ '-' +date+ '<br/>' ); document.write( "该员工的合同到期时间是: " +after.getFullYear()+ '-' +after.getMonth()+ '-' +after.getDate()); } staff(year,month,date); </script> |
getMonth():返回日期中的月份,返回值为0-11,为何4月份一样的,我没加1,但是12月份就是0 了???
26
收起
正在回答
2回答
因为在Date对象中,月份的表示值是介于 0(一月) ~ 11(十二月) 之间。所以设置的时候,传入月份要值减去1,才能与0-11的表示方法匹配,获取月份值时,要加上1,才能符合我们的实际认知。
OlafChou
2017-06-28 07:38:00
1 2 3 4 5 6 7 8 9 10 11 12 13 | <script type= "text/javascript" > var year=parseInt(prompt( "请输入入职的年" )); var month=parseInt(prompt( "请输入入职的月" )); var date=parseInt(prompt( "请输入入职的日" )); function staff(year,month,date){ var now= new Date(year,month,date); var after= new Date(year+3,month-1,date); document.write( "该员工入职时间是: " + year+ '-' +now.getMonth()+ '-' +date+ '<br/>' ); document.write( "该员工的合同到期时间是: " +after.getFullYear()+ '-' +(after.getMonth()+1)+ '-' +after.getDate()); } staff(year,month,date); </script> |
我后来又优化了一个版本,但是now.getmonth()得到的数值就是我输入的数值,这是为何,没有减一,已经搞晕
相似问题
登录后可查看更多问答,登录/注册
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧