<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "<html xmlns=" <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>日期計(jì)算</title>
<script src="./jquery1.6.2.js" type="text/javascript"></script>
<style>
.error{color:red}
</style>
<script type="text/javascript">
var intervalID = 0;
function calculate(inputTime){
var now = new Date();
var t = new Date(inputTime);
var past = (inputTime < now.getTime()) ? 1 : 0; //輸入的時(shí)間過(guò)去了就是1,否則為0
var difference = 0; //差值
//下面的差值減去八個(gè)小時(shí),是因?yàn)閚ew Date(0)是"Thu Jan 1 08:00:00 UTC+0800 1970",從八點(diǎn)開(kāi)始算的
if(past) difference = new Date(now.getTime() - inputTime - 8 * 3600 * 1000);
else difference = new Date(inputTime - now.getTime() - 8 * 3600 * 1000);
//計(jì)算過(guò)去的天數(shù)、小時(shí)、分鐘和秒。天數(shù)要自己算,其它的get就行了
var dDays = parseInt(difference.getTime() / 3600 / 24 /1000);
var dHours = difference.getHours();
var dMinutes =difference.getMinutes();
var dSeconds = difference.getSeconds();
$("#output").html([
"現(xiàn)在時(shí)間是:<font color='blue'>", now.toLocaleString(),"</font>,","<br />",
"<font color='blue'>", t.toLocaleString(),"</font>",
["還要", "已經(jīng)過(guò)去了"][past],
"<font color='blue'>",dDays, "天", dHours, "小時(shí)", dMinutes, "分鐘", dSeconds, "秒","</font>",
["才到", ""][past]
].join(""));//用join方法將上面的數(shù)組連接起來(lái)
}
function btn_calculate(){
clearInterval(intervalID);
$("#error").className = null;
var t = new Date($("#t").val());
if(t.getTime().toString() == "NaN"){ //如果輸入的時(shí)間不對(duì),則將提示字符設(shè)置為error,即紅色
$("#error").className = "error";
$("#t").select();
return false;
}
intervalID = setInterval("calculate(" + t.getTime() + ")", 1000); //設(shè)置定時(shí)器,每秒鐘執(zhí)行一次calculate函數(shù)
return false;
}
</script>
</head>
<body>
<form onsubmit="return btn_calculate()">
<div><span id="error">請(qǐng)輸入要計(jì)算的時(shí)間(格式:2010/02/01 23:07,省略時(shí)分秒則是00:00:00):</span>
<input id="t" value="2010/02/01 23:07" /> <input type="submit" value="計(jì)算時(shí)間">
</div><br />
<div id="output"></div><!--輸出區(qū)域-->
</body>
</html>