首页 » 前端 » 正文

JS读取服务器时间并动态显示

发布者:站点默认
2011/06/25 浏览数(1,922) 分类:前端 JS读取服务器时间并动态显示已关闭评论

说明:
  从服务端获取时间后在本地显示。有时候客户端时间会不准确,所以以服务端时间为准。此方法获取的时间有误差。

代码:

<script type="text/javascript">
	<!--
	var c = 0;
	var Y = <?php echo date('Y'); ?>, M = <?php echo date('n'); ?>, D = <?php echo date('j'); ?>;
	function startTime() {
		c++;
		sec = <?php echo time() - strtotime(date("Y-m-d"));?> + c;
		H = Math.floor(sec / 3600) % 24
		I = Math.floor(sec / 60) % 60
		S = sec % 60
		if(S < 10) S = '0' + S;
		if(I < 10) I = '0' + I;
		if(H < 10) H = '0' + H;
		if (H == '00' & I == '00' & S == '00') D = D + 1; // 日进位
		if (M == 2) { // 是否为二月份
			if (Y % 4 == 0 && !Y % 100 == 0 || Y % 400 == 0) { // 闰年(二月有28天)
				if (D == 30){M += 1; D = 1;} //月份进位
			}else{ // 非闰年(二月有29天)
				if (D == 29){ M += 1; D = 1;} //月份进位
			}
		}else{ // 不是二月份的月份
			if (M == 4 || M == 6 || M == 9 || M == 11) { //小月(30天)
				if (D == 31) {M += 1;D = 1;} //月份进位
			}else { //大月(31天)
				if (D == 32){M += 1;D = 1;} // 月份进位
			}
		}
		if (M == 13) {
			Y += 1;M = 1;
		} // 年份进位
		document.getElementById("timer").innerHTML = Y + '-' + M + '-' + D + ' ' + H + ':' + I + ':' + S;
	}
	$(function(){ // 执行
		var tmpID = setInterval("startTime()", 1000);
	});
	-->
</script>

<span id="timer"></span> 

后记:
正文中的提供的代码在使用中全部通过AJAX返回并添加到页面中时每AJAX一次速度加一,在单独的页面中运行正常。经检查得到了下边这些修改后的代码,可以解决速度加一的问题:

$(function(){ // 执行
	tmpID = setInterval(function(){},10); // 用setInterval建立一个空函数得到目前setInterval的个数
	while(--tmpID > 0) clearInterval(tmpID); // 用while清理之
	var tmpID = setInterval("startTime()", 1000); // 执行
});

只显示时间,不显示年月日的完整代码:

var c = 0;
function startTime() {
	c++;
	sec = <?php echo $now;?> + c;
	H = Math.floor(sec / 3600) % 24;
	I = Math.floor(sec / 60) % 60;
	S = sec % 60;
	if(S < 10) S = '0' + S;
	if(I < 10) I = '0' + I;
	if(H < 10) H = '0' + H;
	document.getElementById("signInTime").innerHTML = H + ':' + I + ':' + S;
}
$(function(){
	tmpID = setInterval(function(){},10);
	while(--tmpID > 0) clearInterval(tmpID);
	var tmpID = setInterval("startTime()", 1000);
});

<完>

点击返回顶部
  1. 留言
  2. 联系方式