Re: [問題] 網頁顯示台灣時間後如何隨時間走動?
※ 引述《binggo (☆Bevis♂)》之銘言:
: ※ 引述《binggo (☆Bevis♂)》之銘言:
: : 網路上尋找了一些可以讓網頁顯示時間的程式碼
: : 但通常都是抓取使用者電腦的時間
: : 我想要固定顯示台灣的時間,不知道該怎麼寫?
: : (我對於HTML基本上都還懂,但不會寫程式,稍微看得懂)
: : 請問這樣的事情做得到嗎?該如何寫?
: 得知如何用PHP讓網頁固定顯示台灣時間,但發覺是屬於靜態的
: 希望能夠顯示時間後讓它隨著時間流動,在網路上找到以下程式碼可用
: <script>
: d = new Date();
: d.setTime(<?php echo time()*1000; ?>);
: function time_callback()
: {
: document.getElementById( "time").innerHTML = d.toLocaleString();
: d.setTime(d.getTime()+1000);
: }
: setInterval( "time_callback()",1000);
這種觸發fuction只能當作更新頻率,不能當作計時器來用
因為每次呼叫的真實時間間隔可能會有相當的誤差
: </script>
: <span id= 'time'></span>
: 但這還是有個問題,這只有"秒數"是抓取格林威治的標準時間
: 而"小時"卻是抓取本地電腦的時區,所以在不同時區的電腦就會不一樣
: 發現是因為d.toLocaleString()的原因,找了好多資訊不知道該怎改…
: 請問該如何改?或是整個要換掉?
下面這個程式碼用的是伺服器的基準時間,搭配客戶端的計時器
雖然如果客戶端的時間計算晶片誤差太大可能有問題
不過一般電腦這誤差不會超過一天5秒還OK
真要解決的話,就要定時(大概15~60分鐘一次)去跟伺服器對時
<script type="text/javascript">
var dc=new Date(),ds=new Date(),dg=8*3600;
ds.setTime((<?php echo time(); ?>+dg)*1000);
function time_callback(){
var dn=new Date();
ds.setTime(ds.getTime()+dn.getTime()-dc.getTime());
dc.setTime(dn.getTime());
document.getElementById("time").innerHTML=ds.toUTCString()+"+0800";
}
setInterval("time_callback()",1000);
</script><span id='time'></span>
如果要換時區的話,就去改"dg"的值
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.180.163
推
05/16 16:08, , 1F
05/16 16:08, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Web_Design 近期熱門文章
PTT數位生活區 即時熱門文章