【问题标题】:new Date('2011-12-15 00:00:00') is showing up as NaNnew Date('2011-12-15 00:00:00') 显示为 NaN
【发布时间】:2012-08-07 20:24:14
【问题描述】:

代码:new Date('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());

【问题讨论】:

  • 它是一个日期对象,而不是一个数字,所以如果你试图将它转换为 int,它将是 NaN。但是如果没有看到更多的代码以及你试图用它做什么,就无法给出一个好的答案。向我们展示您如何获得 NaN。
  • 如果它是相关的,那么 Safari/iOS 中有一个错误会阻止该格式工作...stackoverflow.com/a/4310986/29
  • 我在这里工作得很好:jsfiddle.net/jfriend00/RvAyu。您的代码一定有其他问题,您没有向我们展示。
  • 以上代码在 IE 下不工作,在 Chrome 下工作。很抱歉在这里没有提及。我使用的是 IE 9,我单位的默认浏览器是 IE 8 或 9。
  • @Spudley 我的代码非常简单。它适用于 Chrome,但不适用于 IE 9。var dateText = new Date('2012-08-01 00:00:00'); alert(dateText.getDate().toString() + "/" + dateText.getMonth().toString() + "/" + dateText.getYear().toString());

标签: javascript date internet-explorer-9


【解决方案1】:

在日期格式中添加“T”。例如:

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

【讨论】:

  • 我可以让它在 Chrome 而不是在 IE 9 中运行。感谢您的帮助。
【解决方案2】:

在网上搜索了一番后,发现愚蠢的 IE 不理解这种日期格式。我不了解 Safari 和 Firefox,但肯定可以在 Chrome 中使用。

要么我必须使用像 DateJS 这样的 javascript 库来执行此操作,要么必须执行一些自定义编码,如下所示,我永远不会推荐。幸运的是,我确信我会得到 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));

【讨论】:

    【解决方案3】:

    我尝试过的简单解决方案 从http://datejs.com/下载date.js 包含在您的文件中 然后 var date = Date.parse('1970-01-12 00:00:00'); var formattedDate = date.toString('yyyy-MM-dd');

    它就像 Safari 中的魅力一样。

    【讨论】:

    • 我已经在answer 中提到过 DateJS。对于这种情况,再包含一个 js 库只是一种浪费。 new Date('2011-12-15 00:00:00') 仅在 IE 中不起作用。我的 Intranet 主要由 IE 用户访问,而 Safari 或 FF 对我来说无关紧要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    • 1970-01-01
    • 2018-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多