2011-07-06 42 views
1
我使用jQuery的倒計時

的所有版本工作在軌項目之一,下面的代碼 -jQuery的倒計時不與IE

var timeoff = new Date("#{time_format(auction.end_time)}"); 
$("#myDivId .timerContent").countdown({until : timeoff, onExpiry:applySold, compact : true, layout : '', serverSync: serverTime }); 

和serverTime方法有 -

function serverTime(){ 
    $.get("/server_time","", function(data){ 
     time = new Date(data); 
    }, "text"); 
    return time; 

}

這段代碼在firefox,safari和chrome中運行得非常好,但在IE中不起作用。 在IE中它呈現了這個 - Nan:NaN:NaN

什麼可能導致這種情況?

P.S.在上面的代碼中,我在 var timeoff = new Date(「#{time_format(auction.end_time)}」);

我有時間的格式 - 「2011-07-07T00:00:00 + 05:30」

和我的文檔類型設置爲 -

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
+0

除非我看到倒計時代碼,但我的猜測是不能正確地回答這個問題的變量,保持數字需要'parseInt()'纏繞它們 – fin1te

+0

我正在使用jquery倒計時插件-http://keith-wood.name/countdown.html 它給出了.countdown方法。 – rtdp

+0

如果我沒有弄錯,serverTime()方法中的'time'應該總是未定義的。 '$ .get'異步加載數據,並在回調中將其分配給時間,而'時間已經在設置之前返回。 – polarblau

回答

0

我有確切同樣的問題,即時通訊使用Date.parse($(「。時間」)。html),它輸出罰款IE和FF ...當我測試這個純HTML的工作和倒計時爲兩個瀏覽器!但它似乎RUBY rials.js或JS的加載順序與IE衝突.. !!!!!

測試此頁在www.scratch22.net/testing in BOTH IE和FIREFIOX!工作正常!!但不是從實際的導軌應用程序內!

編輯 於是,我從許多不同的地方很多很多不同的答案,只能得到一個針對IE瀏覽器在JavaScript與時區比較日期時間工作

ruby-1.9.2-p180 :001 > Time.now 
     => 2011-07-14 08:55:26 +1000 
    ruby-1.9.2-p180 :002 > Time.now.to_s 
     => "2011-07-14 08:55:30 +1000" 
    ruby-1.9.2-p180 :004 > Time.now.to_datetime.to_s 
     => "2011-07-14T08:55:51+10:00" 
    ruby-1.9.2-p180 :005 > Time.now.to_formatted_s 
     => "2011-07-14T08:56:18+10:00" 
    ruby-1.9.2-p180 :003 > Time.now.to_datetime 
     => Thu, 14 Jul 2011 08:55:35 +1000 

**我本來<%= Time.now.to_datetime%>,並沒有認識到這打印出來的頁面時返回不同的字符串格式**

ruby-1.9.2-p180 :007 > Time.now.to_formatted_s(:rfc822) 
     => "Thu, 14 Jul 2011 08:57:26 +1000" 

的最後鄰尼利時間格式與時區,我可以讓IE瀏覽器與數字一起工作...我擺脫瞭解析以及...

所有我想做的是返回從現在到當一個價格應該下降, 並顯示出倒計時......

得到的JS是像

now = new Date().getTime(); // Thu, 14 Jul 2011 07:57:26 +1000 
    drops_in = new Date("Thu, 14 Jul 2011 08:57:26 +1000").getTime(); //1 hour in future 
    countdown = drops - now; 
    $(".counter_holder").html(format_time(countdown)); // 00:35:25 

一個更新間隔每500毫秒

的經驗教訓的內部。 ..

ruby-1.9.2-p180 :003 > Time.now.to_datetime 

一樣

<%= Time.now。to_datetime%>

使用<%= Time.now.to_formatted_s(:rcf822)%>代替

+0

我通過更改日期格式找到了解決方案。我的舊日期格式包括時區,並且導致Date.new()不創建Date對象。 我會建議嘗試在IE控制檯下面運行代碼。 Date.parse($(「.time」)。html).to_s 檢查這是否給你正確的日期對象。 – rtdp