zl程序教程

您现在的位置是:首页 >  后端

当前栏目

js计算两个时间之间天数差的实例代码

JS实例计算代码 时间 两个 之间 天数
2023-06-13 09:15:12 时间

复制代码代码如下:


//判断是否为闰年
functionisLeapYear(year){
if(year%4==0&&((year%100!=0)||(year%400==0)))
{
    returntrue;
}
returnfalse;
}
//判断前后两个日期
functionvalidatePeriod(fyear,fmonth,fday,byear,bmonth,bday){
if(fyear<byear){
returntrue;
}elseif(fyear==byear){
if(fmonth<bmonth){
  returntrue;
}elseif(fmonth==bmonth){
  if(fday<=bday){
   returntrue;
  }else{
   returnfalse;
  }
}else{
  returnfalse;
}
}else{
returnfalse;
}
}
//计算两个日期的差值
functiondateDiff(d1,d2){
   vardisNum=compareDate(d1,d2);
   returndisNum;
}
functioncompareDate(date1,date2)
{
   varregexp=/^(\d{1,4})[-|\.]{1}(\d{1,2})[-|\.]{1}(\d{1,2})$/;
   varmonthDays=[0,3,0,1,0,1,0,0,1,0,0,1];
   regexp.test(date1);
   vardate1Year=RegExp.$1;
   vardate1Month=RegExp.$2;
   vardate1Day=RegExp.$3;

   regexp.test(date2);
   vardate2Year=RegExp.$1;
   vardate2Month=RegExp.$2;
   vardate2Day=RegExp.$3;

if(validatePeriod(date1Year,date1Month,date1Day,date2Year,date2Month,date2Day)){
firstDate=newDate(date1Year,date1Month,date1Day);
    secondDate=newDate(date2Year,date2Month,date2Day);

    result=Math.floor((secondDate.getTime()-firstDate.getTime())/(1000*3600*24));
    for(j=date1Year;j<=date2Year;j++){
 if(isLeapYear(j)){
     monthDays[1]=2;
 }else{
     monthDays[1]=3;
 }
 for(i=date1Month-1;i<date2Month;i++){
     result=result-monthDays[i];
 }
    }
    returnresult;
}else{
   alert("对不起第一个时间必须小于第二个时间,谢谢!");
   exit;
}
}


调用该函数传递两个时间值:2013-01-19  2013-12-19

days=dateDiff(d1,d2);