您的位置:首页 > Web前端 > JQuery

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

2016-09-09 16:53 447 查看
/******************************************************************************



* 文件名:  Bll.js

* 文件功能描述: 计算两个日期天数差的函数,通用,根据指定的一个日期和相差的天数,获取另外一个日期

* 作    者:  liangjw

* 创建标示:  2013-06-20

* 邮    箱: liangjw0504@163.com

* 版权所有: Copyright (C) 【2013 liangjw】

* 版本号:    V1.0

* 备    注: 无

* 修改者:   无

* 修改描述: 无

* 修改标示: 无



*******************************************************************************/

 

$(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;

 

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: