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

JavaScript日期时间间隔计算

2009-03-10 11:42 344 查看
Hi

If you need to validate the date span between the two input dates, I would like to suggest you try the following demo, which works fine on our lab:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<title></title>

<script type="text/javascript">

function strDateTime(str) {

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

if (r == null) return false;

var d = new Date(r[1], r[3] - 1, r[4]);

return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d.getDate() == r[4]);

}

function btnValidate_onclick() {

var strfrom = document.getElementById("txtfrom").value;

var strto = document.getElementById("txtto").value;

if (!strDateTime(strfrom) && strDateTime(strto)) {

alert("the date format is not valid");

}

else {

if (DateDiff(strto, strfrom) > 180) {//180 days

alert("the date span is too big:" + DateDiff(strto, strfrom));

return false;

}

else {

return true;

}

}

}

function DateDiff(sDate1, sDate2) {

var aDate, oDate1, oDate2, iDays

aDate = sDate1.split("-")

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

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 style="font-family:Calibri; font-size:14px;">

<form id="form1" runat="server">

<div>

</div>

</form>

<p>

From:

<input id="txtfrom" type="text" />(format: 2009-07-12)</p>

<p>

To:

<input id="txtto" type="text" /></p>

<p>

<input id="btnValidate" type="button" value="Validate" onclick="return btnValidate_onclick()" /></p>

</body>

</html>

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