月份加1的问题

月份加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>

http://img1.sycdn.imooc.com/climg//5952e7560001460409300542.jpg

http://img1.sycdn.imooc.com/climg//5952e756000179c309360638.jpg


getMonth():返回日期中的月份,返回值为0-11,为何4月份一样的,我没加1,但是12月份就是0 了???


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

因为在Date对象中,月份的表示值是介于 0(一月) ~ 11(十二月) 之间。所以设置的时候,传入月份要值减去1,才能与0-11的表示方法匹配,获取月份值时,要加上1,才能符合我们的实际认知。http://img1.sycdn.imooc.com/climg//595321080001b1db14460309.jpg

  • OlafChou 提问者 #1
    非常感谢!
    2017-06-28 23:02:02
提问者 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()得到的数值就是我输入的数值,这是为何,没有减一,已经搞晕

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码