2012-08-07 27 views
2

代碼:new Date('2011-12-15 00:00:00')顯示爲NaN
我該如何轉換這個日期? 任何幫助表示讚賞。新日期('2011-12-15 00:00:00')顯示爲NaN

我的代碼非常簡單。它適用於Chrome,但不適用於IE 9.

var dateText = new Date('2012-08-01 00:00:00'); 
alert(dateText.getDate().toString() + "/" + dateText.getMonth().toString() + "/" + dateText.getYear().toString()); 
+8

它是一個日期對象,而不是一個數字,所以如果你想將它轉換爲int,它將是NaN。但是如果沒有看到更多的代碼以及你想要做什麼,就不能給出一個好的答案。告訴我們你是如何得到NaN的。 – Spudley 2012-08-07 20:26:04

+1

如果它是相關的,Safari/iOS中有一個錯誤,它可以防止這種格式工作... http://stackoverflow.com/a/4310986/29 – 2012-08-07 20:28:22

+3

我在這裏工作得很好:http://jsfiddle.net/ jfriend00/RvAyu /。您的代碼中一定有其他錯誤,您沒有向我們展示。 – jfriend00 2012-08-07 20:28:58

回答

0

經過在網絡上的一些搜索,意識到愚蠢的IE不理解這種日期格式。我不知道Safari和Firefox,但肯定可以在Chrome中使用。

要麼我將不得不使用一些JavaScript庫像DateJS這樣做,否則將不得不做一些自定義編碼,我將永遠不會推薦。幸運的是,在我的情況下,我相信我會以YYYY-MM-DD HH:MI:SS格式獲取日期。

var dateText = '2011-12-15 00:00:00'; 
alert(dateText.substring(5, 7) + "/" + dateText.substring(8, 10) + "/" + dateText.substring(0, 4)); 
4

將「T」添加到日期格式中。例如:

new Date('2011-12-15T00:00:00') 
+0

在IE 9中不起作用 – user007 2012-08-07 21:14:41

+0

你確定嗎?試試這個http://jsfiddle.net/xDjXq在你的IE9 – 2012-08-07 21:26:08

+0

我可以得到它在Chrome瀏覽器中工作,而不是在IE 9.感謝您的幫助。 – user007 2012-08-07 21:31:08

0

最簡單的辦法我試過從http://datejs.com/ 下載date.js在您的文件 然後 VAR日期= Date.parse( '1970年1月12日00:00:00'); var formattedDate = date.toString('yyyy-MM-dd');

它在Safari中很有魅力。

+0

我已經在我的[答案](http://stackoverflow.com/a/11854411/740756)中提到了DateJS。爲這種情況增加一個js庫只是一種浪費。新日期('2011-12-15 00:00:00')只在IE中不起作用。我的內部網大部分是由IE用戶訪問的,Safari或FF對我來說並不重要。 – user007 2014-04-16 17:19:52