js--jquery--判断两个日期之间相差多少天

$(document).ready(function () {
  
    //获取单元格值改变事件不需要获取焦点
    //备注:可以换成  $(".CheckCountLen").bind("blur", function () {
    $("#butOK").bind("click", function () {
  
        //判断开始时间和结束时间
        var strStartTime = $("#fStarttime").val();
        var endTime = $("#fEndtime").val();
  
        if (strStartTime == "" || endTime == "") {
            $("#DifDay").val(0);
        }
        else {
            var startNum = parseInt(strStartTime.replace(/-/g, ''), 10);
            var endNum = parseInt(endTime.replace(/-/g, ''), 10);
            if (startNum > endNum) {
                alert("结束时间不能在开始时间之前!");
            }
            else {
                $("#DifDay").val(DateDiff(strStartTime, endTime));  //调用/计算两个日期天数差的函数,通用
            }
        }
    });
  
    //根据填写相差天数获取结束日期
    $("#butOK1").bind("click", function () {
  
        //判断开始时间和结束时间
        var strStartTime = $("#fStarttime").val();
        var inputNum = $("#inputNum").val(); //获取相差天数
        if (strStartTime != "") {
  
        }
        $("#fEndtime").val(addByTransDate(strStartTime, inputNum));  //根据指定的一个日期和相差的天数,获取另外一个日期
  
    });
  
});
  


//计算两个日期天数差的函数,通用

function DateDiff(sDate1, sDate2) {  //sDate1和sDate2是yyyy-MM-dd格式
  
    var aDate, oDate1, oDate2, iDays;
    aDate = sDate1.split("-");
    oDate1 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);  //转换为yyyy-MM-dd格式
    aDate = sDate2.split("-");
    oDate2 = new Date(aDate[1] + '-' + aDate[2] + '-' + aDate[0]);
    iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); //把相差的毫秒数转换为天数
  
    return iDays;  //返回相差天数
}
  




//根据指定的一个日期和相差的天数,获取另外一个日期
//dateParameter为指定已经存在的日期yyyy-MM-dd  num为相差天数为整型

function addByTransDate(dateParameter, num) {
  
    var translateDate = "", dateString = "", monthString = "", dayString = "";
    translateDate = dateParameter.replace("-", "/").replace("-", "/"); ;
  
    var newDate = new Date(translateDate);
    newDate = newDate.valueOf();
    newDate = newDate + num * 24 * 60 * 60 * 1000;  //备注 如果是往前计算日期则为减号 否则为加号
    newDate = new Date(newDate);
  
    //如果月份长度少于2,则前加 0 补位  
    if ((newDate.getMonth() + 1).toString().length == 1) {
        monthString = 0 + "" + (newDate.getMonth() + 1).toString();
    } else {
        monthString = (newDate.getMonth() + 1).toString();
    }
  
    //如果天数长度少于2,则前加 0 补位  
    if (newDate.getDate().toString().length == 1) {
  
        dayString = 0 + "" + newDate.getDate().toString();
    } else {
  
        dayString = newDate.getDate().toString();
    }
  
    dateString = newDate.getFullYear() + "-" + monthString + "-" + dayString;
    return dateString;
  
}

原文链接:https://www.cnblogs.com/mybug/p/9290468.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值