2016-10-12 28 views
1

我试图将区域日期字符串转换为日期目标为IE11,我在Visual Studio 2015中测试它,parseInt返回NaN。这里是我的函数的例子:区域设置日期字符串不转换

https://jsfiddle.net/4tL8p5fh/

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 />" 
 
})
<div id="root"> 
 

 
</div>

如果我运行在同一个函数只是IE11中的jsfiddle证明它工作正常。在IE 11出于某种原因,当你输入一个区域日期字符串到日期它不能转换它。

+0

总是添加基数'parseInt(numbers [i],10)' – adeneo

+0

并注意你可以做的只是'var results = numbers.map(Number);' – adeneo

+0

这个函数可以在我的IE11中正常工作...... –

回答

0

我在字符串“9/30/2016”中发送了函数,并且我正在出去[9,30,2016],这是预期的,但是当我检查“9”我得到了3.看起来有两个字符添加到字符串中,一个在字符串之前,另一个在字符串之后。我滤除了那些额外的字符,现在它可以工作。

相关问题