美文网首页
js获取当前日期对齐5分钟,或退后到任意时间对齐5分钟,或 上周

js获取当前日期对齐5分钟,或退后到任意时间对齐5分钟,或 上周

作者: 虚幻的锈色 | 来源:发表于2017-12-14 18:58 被阅读279次

对于应用系统来说,经常会展示实时计算的数据,只要服务器一有数据,就会计算;基本间隔都是与实时时间相差五分钟,隔五分钟一个数据;所有经常遇到去数据时,把时间往前推几分钟,然后对齐时间(0、5对齐);而且有时候展示数据要和上周同期进行对比等等等;所有就写了一个这个函数。可以传进去要时间退多少分钟,以及要的是带时分秒的还是不带时分秒的;

如: QQ截图20171214185650.jpg 如: QQ截图20171214185713.jpg 如: QQ截图20171214185725.jpg

函数:

    toDub:function(n){
        return n<10?'0'+n:n+'';
    },
    alignMin5:function(num,type){
        var num=num*60*1000;
        var oDate=new Date();
        oDate.setTime((new Date()).getTime()+num);
        var min=oDate.getMinutes();
        min=min<10?'0'+min:min+'';
        var min0=min.split('')[0];
        var min1=min.split('')[1];
        if(min1>=0 && min1<5){
            min1=0;
        }else{
            min1=5;
        }
        var setM=min0+min1;
        oDate.setMinutes(setM);
        if(type){
            return oDate.getFullYear()+Global.toDub(oDate.getMonth() + 1)+Global.toDub(oDate.getDate())+Global.toDub(oDate.getHours())+Global.toDub(oDate.getMinutes());
        }else{
            return  oDate.getFullYear()+Global.toDub(oDate.getMonth() + 1)+Global.toDub(oDate.getDate())
        }
    },

当然,对齐5分钟还可以更简单,单独用min处理下,在拼接上去!:Math.float(min/5)*5,不过要注意,min<10的时候,要补零!看个人喜爱用。

使用:

var today=Global.alignMin5(-5,false);  //"20171214"当天的
var today=Global.alignMin5(-5,true); //"201712141845"
var day_duibi=Global.alignMin5(-(5+7*24*60),false); //"20171207"  //上周同期的
var day_duibi=Global.alignMin5(-(5+7*24*60),true); //"201712071845"  //上周同期的
可以随意转化为自己要的格式 如"20171207184536":str.replace(/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/,'$1-$2-$3 $4:$5:$6')  //2017-12-07 18:45:36

相关文章

网友评论

      本文标题:js获取当前日期对齐5分钟,或退后到任意时间对齐5分钟,或 上周

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