2012-05-10 65 views
1
var austDay = new Date("May 18, 2012 00:00:00"); 
      $('#countdown').countdown({until: austDay}); 

是我得到的。我希望使這個靜態,我的意思是它顯示在所有時區相同的倒計時。因此,無論您是否在計算機上更改時區或日期,都不應影響倒計時,而且應該保持8小時。javascript/php靜態倒計時,怎麼樣?

也許這不可能,因爲Javascript是客戶端?

我該怎麼辦?我真的希望它倒計時,而不是所以你需要刷新。也許我可以使用PHP的一些幫助?

倒計時應該是相同的例4時朝,還應顯示,在紐約和亞洲..

+1

var austDay = new Date(Date.UTC(2012,4,18)); –

+1

GGG寫成答案!謝謝!!!! – Karem

回答

2

您可以使用PHP服務器的時間傳遞到客戶端,像這樣。

var time = new Date(<?php echo time()*1000; ?>); 
0
var austDay = new Date("May 18, 2012 00:00:00"); 

這將創建出的日期和時間日期對象,在用戶的本地時區。要創建一個UTC日期,你可以做這樣的事情,而不是:

var austDay = new Date(Date.UTC(2012, 4, 18)); 

...其中4是從零開始個月號(2012年和18年,日,很明顯)。

如果需要顯示日以後,使用「UTC」的功能,而不是其非UTC的同行,例如:

console.log(austDay.toUTCString()) // "Fri, 18 May 2012 00:00:00 GMT" 

另一個問題是,用戶可以改變他們的時鐘。爲了給他們留下像「剩下8小時」之類的東西,並且絕對有把握,你必須將服務器時間與客戶的時間進行比較,並根據此時間設置日期。

例如,如果服務器知道事情發生在明天中午,並且在晚上9點,則倒計時在15個小時內結束。您可以告訴客戶在倒計時準備好之前剩下多少時間,而不是給他們一個絕對的時間。

var austDay = new Date(); 
var hoursLeft = <?php echo $something ?>; 

austDay.addHours(hoursLeft); 

你可能想這樣做,在幾秒鐘或更小而不是幾個小時,我使用的小時數這裏簡單。