2012-08-07 72 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