老师,我这段代码是出现了什么逻辑问题吗?

来源:6-10 知识梳理

慕仰7236035

2020-11-19 15:23:54

 <script>



      function setTDate(year,month,today) {

        //获取今天日期

        var currentDate = new Date();

         //获取今天年份

        var year = currentDate.getFullYear(); 

        //获取今天的月份(0-11),加上1才是我们平时所说的月份

        var month = currentDate.getMonth() + 1;  

        //获取今天是几号

        var today = currentDate.getDate();

        //获取本月总共有多少天

        var allDays = new Date(year,month,0).getDate();

        //拼接当前月份的第一天

        var firstdate = year + '-' + month + '-01';

        //1000*60*60*24是一天的毫秒数

        var oldTime = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 * 5;

        console.log(oldTime);

        var oldTime1 = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 *(allDays-5);

        var oldTime2 = new Date(firstdate + "00:00:00").getTime() + 1000 * 60 * 60 * 24 *(allDays);

        if(currentDate.getTime() <= oldTime){

          alert("是当前5天哦,小傻逼!")

        }else{

          alert("不是当前5天哦!小傻逼!")

        }

        if (currentDate.getTime() >= oldTime1 && currentDate.getTime() <= oldTime2) {

          alert("是最后5天呢!");

        } else {

          alert("不是最后5天哦!");

        }

      }

      setTDate(2020,11,05);

    </script>


在这里输入代码,可通过选择【代码语言】突出显示

写回答

1回答

好帮手慕久久

2020-11-19

同学你好,代码中有如下问题:

1. 调用setTDate方法时,参数是数字形式,但是正常数字不能以“0”开头,因此建议将参数改成字符串形式:
http://img.mukewang.com/climg/5fb6216d095a7a4004630070.jpg
2. setTDate方法的形参是year、month、today,而方法内还定义了同名的变量year、month、today,二者会冲突,建议将形参改名,如下:
http://img.mukewang.com/climg/5fb621c2094992f307000408.jpg
3. 传入的参数并没有使用,所以方法会以当前时间来计算,修改如下:
http://img.mukewang.com/climg/5fb621fb094bb51606330227.jpg

4. 拼接时间时,秒和时间之间要有空格,如下:
http://img.mukewang.com/climg/5fb6224f09fc080911180321.jpg
5. 时间的临界点可优化一下:
http://img.mukewang.com/climg/5fb6248409fcefac07330170.jpg
另外,提问时,代码中不要含有敏感词汇呦(骂人相关词语)~,否则老师这边很久都看不到同学的问题,会影响同学的学习体验。
祝学习愉快!

0

0 学习 · 14456 问题

查看课程