js计算日期相差的天数

在网站开发中,经常会遇到计算日期相差的天数,js 没有提供相应的方法,所以自己写一个,方便将来查看:

代码:

function DateDiff(sDate1, sDate2, splitStr) {    //sDate1和sDate2是2006-12-18格式  
        var aDate, oDate1, oDate2, iDays;
        aDate = sDate1.split(splitStr);
        oDate1 = new Date(aDate[1] + splitStr + aDate[2] + splitStr + aDate[0]); //转换为12-18-2006格式
        aDate = sDate2.split(splitStr);
        oDate2 = new Date(aDate[1] + splitStr + aDate[2] + splitStr + aDate[0]);
        iDays = parseInt((oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
        return iDays;
    }

参数解释:

sDate1:结束日期
sDate2: 开始日期
splitStr:日期的分隔符,如(2010-10-10的分隔符为“-”)这里是为了通用各种分隔符的日期格式。
如果要返回天数,而不是要谁大谁小,Math.abs((oDate1 - oDate2))就计算绝对值。
以上就足以计算时间差了,以下是为了让这个更完善。

如果日期没有分隔符(如:20101210),这种情况怎么办呢,只好将其转为有分隔符的日期了,顺带附上转换日期的函数:
function convertDate(date,splitStr)//轉換日期格式
{
    var strDate = date;
   if(splitStr=="")
    {
     splitStr="-";//设置默认
    }

  if (checkInt(strDate)) 
  {//判斷是否有分隔符      var s1 = strDate.substring(0, 4) + splitStr; var s2 = strDate.substring(4, 6) + splitStr; var s3 = strDate.substring(6, 8); strDate = s1 + s2 + s3; //$(element).val(strDate);//如果沒有分隔符,把分隔符插入之後,賦值給文本框,類似於格式化日期 } return strDate } //判断是否为整型,在日期格式转换的时候用到 function checkInt(num)
{//验证是否是纯数字,如果是純數字 說明沒有分隔符20141115   var reg = /^-?\d+$/;//对正则表达式不熟,知道的朋友帮忙解释下"-?"的意思   if (reg.test(num))
  {     
return true;   }   else
  {     
return false;   } }

 

 

转载于:https://www.cnblogs.com/LJP-JumpAndFly/p/4104100.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值