区域设置日期字符串不会转换

时间:2016-10-12 20:27:21

标签: javascript visual-studio

我正在尝试将区域设置日期字符串转换为针对IE11的日期,我在Visual Studio 2015中测试它,isOpaque返回parseInt。以下是我的功能示例:

https://jsfiddle.net/4tL8p5fh/

NaN
function convertLocaleDateStringToDate(locale) {
  var numbers = locale.split("/");
  var results = [];
  for (var i = 0; i < numbers.length; i++) {
    results[i] = parseInt(numbers[i]);
  }
  return new Date(results[2], results[0] - 1, results[1]);
}

dates = [
  "9/30/2016",
  "10/1/2016",
  "1/1/2016",
  "12/31/2016"
];

var root = document.getElementById("root");
dates.forEach(function(ele) {
  root.innerHTML += convertLocaleDateStringToDate(ele) + "<br />"
})

如果我在IE11中运行相同的功能,它在jsfiddle中可以正常工作。在IE 11中由于某种原因,当您将语言环境日期字符串输入日期时,它无法转换它。

1 个答案:

答案 0 :(得分:0)

我发送了字符串“9/30/2016”到函数中,我出去了[“9”,“30”,“2016”]这是预期的,但当我检查“9”的长度我看起来有两个字符添加到字符串中,一个在数字字符串之前,一个在数字字符串之后。我过滤掉了那些额外的角色,现在就可以了。