JS 计算日期差

 
 
 
 
 
 
 

 
 function getHours(){
  var time1 = document.getElementById("time1").value; 
  var time2 = document.getElementById("time2").value; 
  var date_1 = new Date();
  date_1.setTime(string2date(time1));

  var date_2 = new Date();
  date_2.setTime(string2date(time2));

  var date_diff = new Date();
//  date_diff.setTime(Math.abs(date_2.getTime() - date_1.getTime()));
  date_diff.setTime(date_2.getTime() - date_1.getTime());
  var time_diff = date_diff.getTime();
//  计算天数  
//  var days = Math.floor(time_diff / (24 * 60 * 60 * 1000));
//  time_diff -= days * (24 * 60 * 60 * 1000);

//  计算小时数
  var hours = Math.floor(time_diff / (60 * 60 * 1000));

  if(hours<0){
   alert("加班结束时间不能早于加班开始时间");
   return false;
  }else{
   document.getElementById("time3").value = hours;
  }
  
 }
 
 
 function string2date(str){
  var arr = str.split("-");
  var year = arr[0];
  var month = arr[1];
  var day = arr[2].split(" ")[0];
  var hour = arr[2].split(" ")[1].split(":")[0];
  var min = arr[2].split(" ")[1].split(":")[1];
  var second = 00;

  if(month < 1 || month > 12){
   alert("月份超出范围!");return false;
  }
  if((month == 4 || month == 6 || month == 9 || month == 11) && day == 31){
   alert("该月没有"+day+"号!");return false;
  }
  if(month == 2){
   var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0))
   if(day > 29 || (day == 29 && !isleap)){
    alert("该月没有"+day+"号!");return false;
   }
  }
  if(day < 1 || day > 31){
   alert("该月没有"+day+"号!");return false;
  }
  if(hour < 0 || hour > 23){
   alert("小时数无效!");return false;
  }
  if(min < 0 || min > 59){
   alert("分钟数无效!");return false;
  }
  
  var temp = new Date(month + "/" + day + "/" + year + " " + hour + ":" + min + ":" + second);
  return temp.getTime();
 }

 

 


 

time1:格式:YYYY-MM-DD HH:MM

time2:格式:YYYY-MM-DD HH:MM

time3:结果

计算相小时数

 
 

 

 

你可能感兴趣的:(JS)