【问题标题】:Invalid date problems in Internet explorerInternet Explorer 中的无效日期问题
【发布时间】:2016-12-09 20:53:20
【问题描述】:

这个问题快把我逼疯了。虽然我的代码在 Firefox 和 Google chrome 上运行良好,但在 Windows 10 上的 Internet Explorer 上却失败了。但问题真的很奇怪。

// If I hard code this value, it works fine,
// But the same thing generated by the program fails!
//var dateStr = '2016-08-04 01:38:49'

alert(dateStr)

var a   = dateStr.split(" ");
d       = a[0].split("-");
t       = a[1].split(":");

return new Date(d[0],(d[1]-1),d[2],t[0],t[1],t[2]);

变量dateStr 由我的程序填充,因此返回的日期总是无效的。但是,如果我从警告框中复制dateStr 的值,然后用它硬编码dateStr 的值,则会返回一个有效日期。到底是怎么回事?我在这里错过了什么吗?我怀疑,这与 unicode 字符串和东西有关。可能是什么?

【问题讨论】:

    标签: javascript google-chrome firefox browser cross-browser


    【解决方案1】:

    我认为问题在于,您的字符串包含一些隐藏字符来支持,例如从右到左,..

    所以你对 new Date() cntr 的输入参数是无效的。

    请注意:如果您使用当前系统创建的 dateTime 字符串,这可能会导致问题,因为您的解析器仅支持 YYYY-MM-DD hh:mm:ss,这是一种基于您的系统本地化的格式,并且可能返回完全不同的格式如果您的本地化是中文或韩文,则为字符串

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      相关资源
      最近更新 更多