Js中实现日期加减--字符串转换成数字进行运算

/* 时间工具格式
 * @author czm_hudy@126.com
 * 
 * @return
 */


function TimeUtil(){
this.config = {
    morning : "上午",
   afterNoon : "下午",
   patterns: ['HH','HH:MM','HH:MM:SS','MM:SS']
};
this.defaultPattern = this.config.patterns[0];
};
TimeUtil.prototype.nowTime = function(){
var curDate = new Date();
var hour = curDate.getHours();
var min = curDate.getMinutes();
return hour + ":" + min;
}

/**
 * 判断格式
 */
TimeUtil.prototype.checkFormat = function(pattern){
var accord = false;
for(var i=0; i<this.config.patterns.length; i++){
if(this.config.patterns[i] == pattern){
accord = true;
break;
}
}
return accord;
};

/**
 * 时间添加
 */
TimeUtil.prototype.timeAdd = function(time1,addMin){
var timeArr = time1.split(':');

var hour = parseInt(timeArr[0]);
var min = parseInt(timeArr[1]);
var add = min + parseInt(addMin);
var rst = add % 60;
var yu = add/60 ;
if(rst == 0){
hour++;
min = 0;
}else if(yu > 1){
hour ++;
min = rst;
}else{
min = rst;
}
var hrst = hour % 24;
if(hrst == 0){
hour = 0;
}else{
hour = hrst;
}
return hour+":"+min;
}

 

/**
 * 两个时间的差值(d1 - d2)分钟.
 */
TimeUtil.prototype.timeDiff = function(t1,t2){  
var day = 60 * 1000;  
try{      
  var dateArr = t1.split(":");  
  var check = new Date();  
  check.setHours(dateArr[0], dateArr[1], 0, 0);
  var checkTime = check.getTime();
  
  var dateArr2 = t2.split(":");  
  var check2 = new Date();  
  check2.setHours(dateArr2[0], dateArr2[1], 0, 0);
  var checkTime2 = check2.getTime();  
  
  var cha = (checkTime2 - checkTime)/day;    
  return cha;
}catch(e){  
  return false;  
}  
};// end fun   

 

 


TimeUtil.prototype._appendZero = function(value, length){
  if(value) {
   value = (value).toString();
   if (value.length < length){
    for(var i = 0; i< length - value.length; i++){
     value = "0" + value;
    }
   }
  }
  return value;
};

 

function getDuration(timesEndtime){
var time = new TimeUtil();
var particle = $(timesEndtime).parent().prev().prev().children().eq(0).val();
var starttime = $(timesEndtime).parent().prev().children().eq(0).val();
var endtime = $(timesEndtime).val();
//1 判断结束时间要大于开始时间 
var cha = time.timeDiff(starttime,endtime);
if(cha <= 0){
alert("结束时间必须大于开始时间!");
return;
}
//2拆分时间,处理59分钟的问题
var mm = endtime.split(":")[1];
var hh = endtime.split(":")[0];
if(endtime != '' && parseInt(mm) == 59){
mm = 60;
endtime = hh+":"+mm;
}

//3持续时间%周期==0

var cha2 = time.timeDiff(starttime,endtime);

$(timesEndtime).parent().next().children().eq(0).val(cha2);

var duration = $(timesEndtime).parent().next().children().eq(0).val();

var a = cha2 % parseInt(particle);

if( a != 0){

    alert("持续时间:"+duration+"必须是测量周期:"+particle+"的整数倍!");

    return;

     }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值