月份为什么不用减去1,也能正常显示月份?

月份为什么不用减去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的?

正在回答

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

1回答

经测试输入1-11之间的月份是没有问题的,因为月份计算是0-11,假如你输入的是10月,那么new Date()设置的时候,记录月份为11月,最后使用getMonth()输出来的时候表现形式是0-11,也就是10月,所以是没有问题的。但是如果输入2018-12-10,结果为:

http://img1.sycdn.imooc.com//climg/5c00cc4e00019da603150054.jpg

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

http://img1.sycdn.imooc.com//climg/5c00cd5c0001a0a016190339.jpg

自己动手测试理解下。

祝学习愉快!

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

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

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

0 星

相似问题

登录后可查看更多问答,登录/注册

前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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