2011-07-20 74 views
0

我正在嘗試爲事件創建倒計時。我使用Jquery CountdownJquery倒計時服務器同步問題

我有這樣的代碼:

$(function() { 
    var fecha = new Date("July 30, 2011 00:00:00"); 
    $('#defaultCountdown').countdown({ 
     until: fecha, 
     format: 'DHMS', 
     expiryUrl: "http://www.google.com", 
     serverSync: serverTime, 
     timezone: -4 
    }); 


}); 


function serverTime() { 
    var time = null; 
    $.ajax({ 
     url: 'serverTime.php', 
     async: false, 
     dataType: 'text', 
     success: function (text) { 
      time = new Date(text); 
     }, 
     error: function (http, message, exc) { 
      time = new Date(); 
     } 
    }); 
    return time; 
} 

腳本工作正常,但是當我試圖改變時鐘日期,倒計時變化。 任何想法,爲什麼?

+0

更改什麼時鐘日期? –

+0

該問題似乎來自成功回調中的錯誤:服務器沒有提供vali日期,因此它回落到JS中的新Date()中;這是一個客戶端功能,所以它顯然基於你的時鐘。 – Cystack

回答

1

我想你在服務器上創建了serverTime.php文件? http://keith-wood.name/countdown.html Tab時區具有您需要添加到serverTime.php以供腳本使用的PHP代碼。也可能想完全符合像url這樣的東西:'http:yourdomain.com/serverTime.php'但是使用它應該使用你的服務器時間而不是你的本地PC時間。如果你的服務器在你的本地PC上,那麼......它會改變。

+0

是的,我在我的服務器上使用serverTime.php – user854866

+0

@Ryan Doom:去:http://keith-wood.name/countdown.html然後改變你的電腦時間它會改變日期。 JS從日期:CLIENT_PC_DATE這是問題。 – errakeshpd

0

我去了他們的網站,他們的例子,改變我的系統時間也會影響他們的倒計時。他們的代碼依賴於本地系統時間。

0

當我從服務器時間窗口獲得ajax調用時看到的內容,它不會創建JavaScript日期對象。

我搜索了下面的爲我工作。

// Split timestamp into [ Y, M, D, h, m, s ] 
var t = "2010-06-09 13:12:01".split(/[- :]/); 

// Apply each element to the Date function 
var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]); 

alert(d); 
// -> Wed Jun 09 2010 13:12:01 GMT+0100 (GMT Daylight Time)