JS函數如下:
<script type="text/javascript">
<!--
function showTimeIsBegin(time){
var self=this;
//下面這句爲重點,setTimeout這個函數我就不多講了(百度一下),說下setTimeout的參數
//一般在在網上看到的都會這樣寫setTimeout("showTimeIsBegin()",1000);
//大家都發現了吧,如果你按照這個邏輯去寫的話肯定是錯誤的,除非你的時間是直接定義在JS函數裏的
//所以說,這裏你必須定義一個上面的“var self=this;”然後將其重寫在傳入time參數,如下
window.setTimeout(function(){self.showTimeIsBegin(time);}, 1000);
//下面的這句BirthDay=new Date()原來是這樣寫的BirthDay=new Date('3-14-2012 14:23:59');
//可以看出它直接把結束時間的參數寫在函數裏了
//如果是這樣的話,就沒動態控制的意義了,所以改成如下形式
BirthDay=new Date(time);
today=new Date();
timeold=(BirthDay.getTime()-today.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(e_daysold-daysold)*24;
hrsold=Math.floor(e_hrsold);
e_minsold=(e_hrsold-hrsold)*60;
minsold=Math.floor((e_hrsold-hrsold)*60);
seconds=Math.floor((e_minsold-minsold)*60);
if(daysold<0)
{
span_dt_dt.innerHTML="時間到!";
}else
{
span_dt_dt.innerHTML=daysold+"天"+hrsold+"小時"+minsold+"分"+seconds+"秒" ;
}
}
//記得這裏重新調用也要傳參數,別忘記了
showTimeIsBegin(time);
//-->
</script>
//服務器代碼如下:
protected void Page_Load(object sender, EventArgs e)
{
//此處將你DB裏設置的數據查出來,並將其格式化成Time.ToString("mm-dd-yyyy hh:mm:ss")
//下面這個time是測試時間
string time = "3-14-2012 14:23:59";
//此處爲服務器代碼調用JS方法並傳入參數
Page.ClientScript.RegisterStartupScript(this.GetType(), "js", "showTimeIsBegin('" + time + "')", true);
}