iT邦幫忙

0

如何讓網頁內可以顯示台灣時間?

  • 分享至 

  • xImage

網路上尋找了一些可以讓網頁顯示時間的程式碼
但通常都是抓取使用者電腦的時間
我想要固定顯示台灣的時間,不知道該怎麼寫?
(我對於HTML基本上都還懂,但不會寫程式,稍微看得懂)
請問這樣的事情做得到嗎?該如何寫?

ccutmis iT邦高手 2 級 ‧ 2011-05-12 14:33:24 檢舉
灌一下NTP Clock,讓自己的電腦跟台灣標準時間同步~也可以設成開機時啟動~
版主先前抓的那些程式碼不就派上用場了嗎?
如果不是指自己的電腦,而是指你做的網頁的話,那就在放網頁的伺服器上灌NTP Clock,
再找網頁程式碼是捉取伺服器時間輸出的~(這種功能通常是server端script,例如:ASP或PHP...比較容易辦到~)
希望有幫助 冏
harryvic iT邦新手 3 級 ‧ 2011-05-12 16:31:13 檢舉
嗯,應該是抓取伺服器的時間做輸出,這方面可能還要找一下…
謝謝你。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
ccutmis
iT邦高手 2 級 ‧ 2011-05-13 17:49:19
最佳解答
<pre class="c" name="code">
<html xmlns="http://www.w3.org/1999/xhtml">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>TEST</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript">

var initTS=<?php echo strtotime(date('Y-m-d H:i:s')); ?>;
var currentTS=initTS;
//先從PHP得到目前server的系統時間,server要用NTP CLOCK校時成台灣標準時間
var tmpTime = new Date();
tmpTime.setTime(currentTS); 

$(document).ready(function() {
	//setInterval( "displayServerTime()",1000);
});

function displayServerTime(){
	currentTS++;
	tmpTime.setTime(currentTS*1000); 
	$('#clock').html(tmpTime.toString());
}

</script>


<div id="clock">display time here</div>
<script type="text/javascript">
setInterval("displayServerTime()",1000);
</script>
</script>

我寫了一個簡單的DEMO...先從PHP(server端)輸出時間到網頁,然後再用Javascript(client端)每秒輸出加1後的時間...
DEMO URL:
http://www.web3d.url.tw/sClock/index.php

你可以改一下自己電腦的時間,再看一下上面的demo網頁~check一下
希望有幫助^^

看更多先前的回應...收起先前的回應...
harryvic iT邦新手 3 級 ‧ 2011-05-16 11:14:16 檢舉

感謝您的幫忙,我測試之後發現這依然是抓取本地端電腦的時區,當我改變自己電腦的時區再重新整理網頁一次就變為和我電腦一樣的時間了,所以這還是不可行。

ccutmis iT邦高手 2 級 ‧ 2011-05-16 14:32:11 檢舉

harry安~
您有看過DEMO URL了嗎?(http://www.web3d.url.tw/sClock/index.php)
那是用上面的程式碼在Server上執行的結果,你把自己的電腦更改時間之後,再refrese應該是也不會有問題。我猜你是把自己的電腦上面跑PHP在作測試(這時它等於是Server),那當然不管你調到哪個時區都會一樣@_@ 第一個重點...用類似NTP CLOCK的軟體幫Server校時。第二個重點...Client端跟Server端要分清楚...

希望有幫助^^"

harryvic iT邦新手 3 級 ‧ 2011-05-16 16:17:30 檢舉

我是直接用您給我的網址做測試,開啟之後,我在Client端更改時間的時區,然後在同一個頁面Refrese,時間就變成跟我電腦的時間一樣...。

harryvic iT邦新手 3 級 ‧ 2011-05-16 16:30:18 檢舉

我已經有找到解答了

<pre class="c" name="code">
<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 SmallBeeWayn 的幫忙。
也謝謝 ccutmis 的幫忙,雖然還不知道問題出在哪。

4
liurambo0911
iT邦高手 1 級 ‧ 2011-05-12 16:23:11

提示一下
找出TIMEZONE 與台灣的+8比對一下就知道該加或該減了
再配合顯示電腦時間功能即可

harryvic iT邦新手 3 級 ‧ 2011-05-12 16:30:13 檢舉

這個…不太懂

4
harrier7
iT邦研究生 2 級 ‧ 2011-05-18 13:32:40
harryvic iT邦新手 3 級 ‧ 2011-05-19 08:53:58 檢舉

看了一下Demo時間的確不會因本地端而變化,不過這程式碼比較複雜有些我看不懂,可能需要再好好研究才能改成我想要的顯示方式,也謝謝harrier7的幫忙。

我要發表回答

立即登入回答