2013-03-06 37 views
-3

我正在尋找一個JavaScript,當服務器時間到達零(每小時)時刷新頁面。當服務器時間到零時刷新頁面的Javascript

+0

它需要多準確? – SteveP 2013-03-06 09:01:56

+0

不是那麼準確,只要一小時後刷新(幾秒鐘左右無關緊要)就足夠了。 – Disgeae 2013-03-06 09:03:22

+0

你需要一個ajax請求來檢查服務器中的時間,但考慮到ajax是異步的。 – m4t1t0 2013-03-06 09:04:14

回答

0

類似的東西應該工作:

$diff = mktime(date("H") + 1, 0, 0, date("m"), date("d"), date("Y")) - time(); 
echo('<meta http-equiv="refresh" content="' . $diff . '" />'); 

但是要記住,你的業務從您的視圖邏輯;-)

分離(也可以省略「日期(」 M「),日期(「d」),日期(「Y」)「,這是爲了幫助理解代碼而添加的)

如果要使用Javascript,只需使用setTimeout和一秒鐘間隔即可計算Value from $ diff降至0;

0

如果頁面只需要一個小時後刷新,服務器可以在頁眉設置meta標籤當頁面先得:

<meta http-equiv="refresh" content="3600"> 

,其中3600是在幾秒鐘內一個小時。如果你想在一小時內使用它,而不是在一小時之後,服務器可以將秒數設置爲直到下一小時的秒數(例如,如果服務器時間是10:30,則它將其設置爲1800 。

+0

我知道,但它需要是時鐘命中零,這是一個JavaScript文件中的JavaScript。 – Disgeae 2013-03-06 09:08:30

0

有我所知兩種可能的方式。

  1. 如果你知道服務器的時區(它是固定的),有時間的時區的JS,並設置倒計時最接近的小時(有是libraries
  2. 第二個選擇是你在你的php代碼的頁眉中設置一個元標記到服務器的當前時間,然後用它來倒計時

選項1會更準確,因爲您會得到與時區相關的當前時間而不是第二選項,因爲服務器添加元時會有延遲,您的js何時讀取它。

但是,如果您的服務器位置可能更改,選項2更有利。

相關問題