`
chinachuner
  • 浏览: 63367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

JS计算日期段的天数

阅读更多

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

 <HEAD>

  <TITLE>JS计算日期段的天数 </TITLE>

  <META NAME="Generator" CONTENT="EditPlus">

  <META NAME="Author" CONTENT="">

  <META NAME="Keywords" CONTENT="">

  <META NAME="Description" CONTENT="">

 

  <script type="text/javascript"> 

  /*将String类型解析为Date类型.   

  parseDate('2006-1-1') return new Date(2006,0,1)   

  parseDate(' 2006-1-1 ') return new Date(2006,0,1)   

  parseDate('2006-1-1 15:14:16') return new Date(2006,0,1,15,14,16)   

  parseDate(' 2006-1-1 15:14:16 ') return new Date(2006,0,1,15,14,16);   

  parseDate('2006-1-1 15:14:16.254') return new Date(2006,0,1,15,14,16,254)   

  parseDate(' 2006-1-1 15:14:16.254 ') return new Date(2006,0,1,15,14,16,254)   

  parseDate('不正确的格式') retrun null   

*/    

function parseDate(str){     

  if(typeof str == 'string'){     

    var results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) *$/);     

    if(results && results.length>3){     

      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]));

}

    results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2}) *$/);     

    if(results && results.length>6){     

 //alert(results[1]+'--'+results[2]+'--'+results[3]+'--'+results[4]+'--'+results[5]+'--'+results[6]);

      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]));      

    }

results = str.match(/^ *(\d{4})-(\d{1,2})-(\d{1,2}) +(\d{1,2}):(\d{1,2}):(\d{1,2})\.(\d{1,9}) *$/);     

    if(results && results.length>7){     

      return new Date(parseInt(results[1]),parseInt(results[2]) -1,parseInt(results[3]),parseInt(results[4]),parseInt(results[5]),parseInt(results[6]),parseInt(results[7])); 

}

  }     

  return null;     

function transDate(str){

if(typeof str == 'string'){

}

return null;

}

/*   

  将Date/String类型,解析为String类型.   

  传入String类型,则先解析为Date类型   

  不正确的Date,返回 ''   

  如果时间部分为0,则忽略,只返回日期部分.   

*/    

function formatDate(v){     

  if(typeof v == 'string') v = parseDate(v);     

  if(v instanceof Date){     

    var y = v.getFullYear();     

    var m = v.getMonth() + 1;     

    var d = v.getDate();     

    var h = v.getHours();     

    var i = v.getMinutes();     

    var s = v.getSeconds();     

    var ms = v.getMilliseconds();        

    if(ms>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s + '.' + ms;     

    if(h>0 || i>0 || s>0) return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s;     

    return y + '-' + m + '-' + d;     

  }     

  return '';     

}   

  function DateDiff(asStartDate,asEndDate)   

  {   //获得日期差值   

      var miStart=Date.parse(asStartDate.replace(/\-/g,'/'));      

      var miEnd=Date.parse(asEndDate.replace(/\-/g,'/'));      

      return (miEnd-miStart)/(1000*24*3600);      

  }  

  function  btnCount_Click(){

 

       s1  =  document.getElementById('start').value;  

  s2  =  document.getElementById('end').value;

  s1=parseDate(s1);

  s2=parseDate(s2);

  alert(s1+'---------'+s2);

 //alert(msToDay(Date.parse(s1)-Date.parse(s2)));

      // alert(DateDiff(s1,s2))  

   }  

   function msToDay(ms){

var ss = 1000;

     var mi = ss * 60;

     var hh = mi * 60;

     var dd = hh * 24;

     var day = ms / dd;

     var hour = (ms - day * dd) / hh;

     var minute = (ms - day * dd - hour * hh) / mi;

     var second = (ms - day * dd - hour * hh - minute * mi) / ss;

     var milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;

var strDay = day < 10 ? 0 + day : day;

     var strHour = hour < 10 ? 0 + hour :hour;

     var strMinute = minute < 10 ? 0 + minute :minute;

     var strSecond = second < 10 ? 0 + second :second;

     var strMilliSecond = milliSecond < 10 ? "0" + milliSecond : "" + milliSecond;

     strMilliSecond = milliSecond < 100 ? "0" + strMilliSecond : "" + strMilliSecond;

return parseInt(strDay) + "天" + strHour + "小时" + strMinute + "分" + strSecond + "秒";

   }

   //计算天数差的函数,通用  

   function  DateDiff(sDate1,  sDate2){    //sDate1和sDate2是2006-12-18格式  

       var  aDate,  oDate1,  oDate2,  iDays  

       aDate  =  sDate1.split("-")  

       oDate1  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])    //转换为12-18-2006格式  

       aDate  =  sDate2.split("-")  

       oDate2  =  new  Date(aDate[1]  +  '-'  +  aDate[2]  +  '-'  +  aDate[0])  

       iDays  =  parseInt(Math.abs(oDate1  -  oDate2)  /  1000  /  60  /  60  /24)    //把相差的毫秒数转换为天数  

       return  iDays  

   }    

 

</script> 

 </HEAD>

 

 <BODY>

 <input id="start" type="text" value="2010-08-14 11:11:11">  <input id="end" type="text" value="2010-08-09 11:15:11">

  <input name="" type="button" onclick="btnCount_Click()" value="计算天数" /> 

  减得毫秒,自己再除以分、时、天

 </BODY>

</HTML>

分享到:
评论

相关推荐

    kettle中使用js计算两个日期之间的天数.txt

    kettle中使用js计算两个日期之间的天数

    计算两个日期相隔天数并减去节假日

    计算两个日期相隔天数并减去节假日,这个可以使用在各种需要通知的场景以及工作日提醒等

    JS 获得两个时间间隔天数

    NULL 博文链接:https://xiaolinjava.iteye.com/blog/769359

    javaScript 计算两个日期的天数相差(示例代码)

    本篇文章主要介绍了javaScript 计算两个日期的天数相差(示例代码) 需要的朋友可以过来参考下,希望对大家有所帮助

    计算两时间段的重合天/小时/分钟/秒数的工具类

    有时候我们在计算时间时,有让获取两时间段重合的天数这种需求,小编也是遇到了这样的需求,就封装了一个工具类,希望能帮助到大家。 例如求(2022-05-02 00:00:00 至 2022-05-12 23:59:59) 时间段和(2022-05-04 ...

    js计算两个日期间的天数月的实例代码

    本文通过实例代码给大家介绍了基于js计算两个日期间的天数月,文中还通过一段代码给大家简单说明了js计算两个日期差的方法,感兴趣的朋友跟随小编一起看看吧

    Date时间操作工具类

    判断当前时间是否在时间段之内 3.根据默认的格式格式化时间 4.根据指定的格式格式化时间 5.改变月份 6.改变天数 7.计算天数间隔 8.Date转String 指定格式 9. String转Date 指定格式 10.时间计算,返回时间差的分钟数...

    常用js大全,javascript校验大全

    1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法...

    js脚本大全 js验证大全 压缩包

    1.37 检验输入的时间段,日期格式yyyy-MM-dd 41 1.39 检查EMail格式是否正确.. 47 1.40 电话号码校验(只能为下划线—、()、或数字) 49 1.41 所输内容应为字母 50 1.41 所输内容不能非空 50 1.42 价格输入是否合法...

    考勤管理系统(内附数据库) .zip

    第一页是考勤汇总,其他页面显示某个员工的明细信息,比如点击请假这一页,自动显示第1页所选员工在时间段内请假的明细记录。统计请假时长时,按每天8小时换算成天。 数据字典 类型:出行方式、假期类别 说明:...

    asoft签到管理系统tykq3.5_build20110125

    3、为用户管理界面和用户数据导出功能增加了一个时间段筛选的功能,现在可以直观的统计出各个用户在选定时间段的考勤数据总揽了。 4、增加一个控制公告和便签刷新的时间字段 现在管理员可以根据自己的服务器压力...

    Dev Tabs-crx插件

    时间和日期:时间和日期只是用JavaScript编写的常规时钟。 获取当前时间和日期,并简单地将其显示在页面中央。 推特:Dev.to有自己的Chrome扩展程序,用于在您访问Twitter网站时在Twitter feed旁边显示更新的新闻...

Global site tag (gtag.js) - Google Analytics