一、获取客户端时间与服务器时间做差
1、前台代码
--隐藏有中传值
<!-<input type="hidden" id="hdfTm1" value="2016/01/26 19:36" />->
<input type="hidden" id="hdfTm1" value="@ViewBag.StartTime"/>
<div id="tm1"></div> --显示剩余时间
<script language="javascript" type="text/javascript">
function showTime()
{
//获取页面隐藏输入框的截至时间
var dt1=new Date(document.getElementById("hdfTm1").value);
//获取当前时间(这个是客户端的时间)
var nowdt=new Date();
//将剩余时间显示在页面上
document.getElementById("tm1").innerHTML=getTimerString(dt1.getTime()-nowdt.getTime());
//延时1秒重复执行
setTimeout("showTime();", 1000);
}
function getTimerString(time) {
d = Math.floor(time / 86400000),
h = Math.floor((time % 86400000) / 3600000),
m = Math.floor(((time % 86400000) % 3600000) / 60000),
s = Math.floor(((time % 86400000) % 3600000 % 60000) / 1000);
if (time>0) {
return d + "天" + h + "小时" + m + "分" + s + "秒";
}else{
return "时间到";
}
}
//调用函数
showTime();
</script>
2、后台代码
//web配置项中 设置的倒计时秒数
int queSeconds = Convert.ToInt32(Config.QueSeconds);
ViewBag.StartTime = DateTime.Now.AddSeconds(queSeconds);
二、获得时间差值
1、前台页面:
<script type="text/javascript">
var dt1 = parseInt(document.getElementById("StartTime").value); //获取页面隐藏输入框的秒数
function showTime() {
dt1--;
document.getElementById("nowTime").innerHTML = getTimerString(dt1); //将剩余时间显示在页面上
setTimeout("showTime();", 1000); //延时1秒重复执行
}
function getTimerString(time) {
m = Math.floor(time/60),
s = Math.floor(time % 60);
if (time > 0) {
document.getElementById("timeCur").value = m * 60 + s;
if (m.toString().length < 2) {
m = "0" + m.toString();
}
if (s.toString().length < 2) {
s = "0" + s.toString();
}
return m + ":" + s;
}else {
document.getElementById("nextQue").style.display = "none";
$("#bzLastTime").val("0");
return "时间到";
}
}
showTime(); //调用函数
</script>
2、后台代码
//web配置项中 设置的倒计时秒数
int queSeconds = Convert.ToInt32(Config.QueSeconds);
int secondsSub = Convert.ToInt32((queDetail.Add_Date.Value.AddHours(24) - DateTime.Now).TotalSeconds);
ViewBag.StartTime = (secondsSub >= queSeconds ? queSeconds : secondsSub);