老师,我想判断今天是不是这个月的前5天和后5天,但是后5天这个该怎么实现呢?以及

老师,我想判断今天是不是这个月的前5天和后5天,但是后5天这个该怎么实现呢?以及

  new Date(firstdate + " 00:00:00").getTime() + 1000 * 60 * 60 * 24;   这句代码的意思是什么呢?

function setTDate() {

        //获取当前日期

        var currentDate = new Date();

         //获取当前年份

        var year = currentDate.getFullYear();

        var month = currentDate.getMonth() + 1;

        var firstdate = year + "-" + month + "-01"//当月第一天

        console.log(firstdate);

        var oldTime =

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

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

          alert("是当前5天呢");

        } else {

          alert("超过5天了");

        }

      }

      setTDate();

​            document.write(date.getFullYear() + '-' + month + '-' + day);  

        }

        getDay();

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

正在回答

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

3回答

同学你好,是按照输入的时间来判断的,如下:

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

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

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

祝学习愉快!

  • 慕仰7236035 提问者 #1
    function setTDate() { //获取今天日期 var currentDate = new Date(2020,11,01); //获取今天年份 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; 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-19 14:23:13
  • 慕仰7236035 提问者 #2
    function setTDate() { //获取今天日期 var currentDate = new Date(2020,11,01); //获取今天年份 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;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-19 14:25:41
  • 慕仰7236035 提问者 #3
    老师,我想发下代码给你看,怎么上传不了呢
    2020-11-19 14:26:19
好帮手慕久久 2020-11-19 14:39:00

同学你好,可以新建一个问题,并把代码粘贴上。

祝学习愉快!

好帮手慕久久 2020-11-19 10:35:42

同学你好,问题解答如下:

1. new Date(firstdate + " 00:00:00").getTime()是获取本月第一天零点零分零秒距离1970 年 1 月 1 日的毫秒数,而1000 * 60 * 60 * 24是一天的毫秒数(一天24小时,一小时60分钟,一分钟60秒,一秒等于1000毫秒),所以

new Date(firstdate + " 00:00:00").getTime() + 1000 * 60 * 60 * 24就是获取本月第二天距离1970 年 1 月 1 日的毫秒数。
2. 同学并没有实现判断是不是本月前五天,实际实现的是:判断是不是本月前1天,如下:

http://img1.sycdn.imooc.com//climg/5fb5d2a6098697dd14810714.jpg
可做如下调整:
http://img1.sycdn.imooc.com//climg/5fb5d5020977b74614040085.jpg

3. 同理,后5天,可以先获取本月共有多少天,然后判断当前时间的毫秒数,是否在后五天的毫秒数范围内即可:
http://img1.sycdn.imooc.com//climg/5fb5d96b0912dda914170699.jpg
以上内容,并不包含在教学服务之内,属于老师为同学做的扩展,如果同学看不太懂,也没关系,多看几遍,或者以后用到了,再回头研究也是可以的。

祝学习愉快!

  • 提问者 慕仰7236035 #1
    老师,我在new Date()里传入参数,例如:var currentDate =new Date(2020,11,27);然后提示还是会根据当天的时间来进行判断是否最后5天
    2020-11-19 13:45:04
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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