网页编程 - 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;

}