2012-12-03 36 views
1

這個非常基本的腳本創建3個變量在頁面上使用,今天的日期在一個首選的格式,從今天+ 90天的日期和從今天+120天的日期。鉻問題與javascript setDate

它在Chrome適用於Firefox和IE很大,但是這些變量來爲「不確定」和控制檯輸出這樣的: 「遺漏的類型錯誤:對象錯誤已經沒有法‘的setDate’」

這裏是我的JavaScript

var today = new Date(); 
var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear(); 

var closed = new Date(); 
closed.setDate(today.getDate()+90); 
var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear(); 

var expire = new Date(); 
expire.setDate(today.getDate()+120); 
var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear(); 
+0

它出現在Chrome瀏覽器工作正常[這裏](http://jsfiddle.net/Jf4Vv/)。如果它不適合你,那麼你的Chrome版本是什麼? – Snuffleupagus

+0

「Uncaught TypeError:Object false has no method'setDate」--- for which which line? – zerkms

+0

在Chrome中適用於我(在Mac OS和Windows上)。 – kinakuta

回答

1

closed爲任何window對象保留名稱。 (請參閱here)由於您在全局空間中運行此項,所有變量都存儲在window的下方,因此您正在碰撞瀏覽器認爲應該是window.closed的內容。

只需將var closed = new Date();更改爲新名稱或@KingKongFrog建議通過閉包將其置於新範圍中。

+0

真棒,謝謝! – Svet

1

將此放在一個匿名函數,並嘗試

(function() { 
    var today = new Date(); 
    var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear(); 

    var closed = new Date(); 
    closed.setDate(today.getDate()+90); 
    var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear(); 

    var expire = new Date(); 
    expire.setDate(today.getDate()+120); 
    var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear(); 
})();