老师为什么Month设置13,打印出来是2?

老师为什么Month设置13,打印出来是2?

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        var today=new Date();
        // today.setFullYear(2017);
        today.setMonth(13);
        console.log(today.getMonth())
        console.log(today)
    </script>
</body>
</html>


正在回答

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

3回答

同学你好,官方规定的是12为明年的第一个月,13为明年的第二个月。不建议再设置比这个更大的值呢。

祝学习愉快~

好帮手慕粉 2020-04-30 10:42:56

同学你好,因为月份相当于是一个数组,因为1年中有12个月份,月份的下标是0-11,即如下:

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

而在函数进行转换后,同学设置的13其实就是2,而2对应的就是三月。同学这样写是不规范的,setMonth里面的值应该设置成0-11。

祝学习愉快~

  • 提问者 慕UI4313976 #1
    谢谢老师,不过还是没有明白,这个月份计算是12取余,12=0,13=1,14=2;但是测试的时候12=0,13=2,14也等于2.
    2020-04-30 18:08:07
提问者 慕UI4313976 2020-04-29 21:08:25
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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