美文网首页
HTML的时间问题

HTML的时间问题

作者: httIsHere | 来源:发表于2017-05-31 16:36 被阅读0次

    根据输入框内的时间日期,获得该日期前6天的日期;


    image.png

    得到该时间近一周的日期:


    image.png

    我原先写了得到前一天的函数:

    //计算前一天,使图表地x轴动态显示
        function preDay(now){
            var l = new Array();
            if(now.indexOf("-") >= 0)
            var data = now.split("-");
            else var data = now.split("/");
            var year = data[0];
            var month = data[1];
            var day = data[2];
            var dd = new Date();
            var d = new Date(year, month, day);
            // console.log(year+"-"+month+"-"+day);
            for(var i = 6; i >= 0;i--){
            dd.setTime(d.getTime()-24*60*60*1000*i);
            var y = dd.getFullYear();
            var m = dd.getMonth();
            var d2 = dd.getDate();
            // console.log(dd+"~"+m);
            l.push(([y,m,d2].join('-')));
            }
            return l;
        }
    

    在使用过程中发现,从输入框得到的日期是2017-5-31,但var d = new Date(year, month, day);所创建的日期是2017-6-30,而在var m = dd.getMonth();时得到的月份是5;
    但是这样得到的日期就是少一个月的,如我的输入框日期为2017-02-01时,所呈现出的时间是:


    image.png

    解决:
    在创建时减少一个月,获取月份时增加一个月;

    //计算前一天,使图表地x轴动态显示
        function preDay(now){
            var l = new Array();
            if(now.indexOf("-") >= 0)
            var data = now.split("-");
            else var data = now.split("/");
            var year = data[0];
            var month = data[1];
            var day = data[2];
            var dd = new Date();
            var d = new Date(year, month-1, day);
            // console.log(year+"-"+month+"-"+day);
            for(var i = 6; i >= 0;i--){
            dd.setTime(d.getTime()-24*60*60*1000*i);
            var y = dd.getFullYear();
            var m = dd.getMonth()+1;
            var d2 = dd.getDate();
            // console.log(dd+"~"+m);
            l.push(([y,m,d2].join('-')));
            }
            return l;
        }
    

    相关文章

      网友评论

          本文标题:HTML的时间问题

          本文链接:https://www.haomeiwen.com/subject/egrjfxtx.html