对于应用系统来说,经常会展示实时计算的数据,只要服务器一有数据,就会计算;基本间隔都是与实时时间相差五分钟,隔五分钟一个数据;所有经常遇到去数据时,把时间往前推几分钟,然后对齐时间(0、5对齐);而且有时候展示数据要和上周同期进行对比等等等;所有就写了一个这个函数。可以传进去要时间退多少分钟,以及要的是带时分秒的还是不带时分秒的;
![](https://img.haomeiwen.com/i4321660/2295ef825f65ce42.jpg)
![](https://img.haomeiwen.com/i4321660/eacd5fef17599b66.jpg)
![](https://img.haomeiwen.com/i4321660/3f8551fe3e262115.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
网友评论