我正在尝试解析此字符串
" 2017-06-01 11:22:20.683"
它在Firefox中运行得很好,但在IE 11中返回NaN 因为在遗留系统上工作
,我无法修改源字符串
function myFunction() {
var d = Date.parse("2017-06-01 11:22:20.683");
document.getElementById("demo").innerHTML = d;
}

<p id="demo"></p>
<button onclick="myFunction()">Try it</button>
&#13;
答案 0 :(得分:2)
这是最简单的解决方案:
function myFunction(dateString) {
var str = dateString.replace(/^(.*-[0-9][0-9])(\ )([0-9][0-9]\:.*$)/, '$1T$3')
var d = Date.parse(str);
document.getElementById("demo").innerHTML = d;
}
答案 1 :(得分:1)
不幸的是,这个API不太可靠。 Edge仍会为您提供NaN
。你有两个选择:
1)使用名为MomentJS的外部库。非常容易使用并且已经实施了所有角落案例。 (http://momentjs.com/docs/)
2)请参考此问题手动解析:Why does Date.parse give incorrect results?
希望有所帮助
答案 2 :(得分:1)
请不要将'-'替换为'/',而应使用空格。
var str = "15-Dec-2019 05:25:45 PM ";
console.log( Date.parse( str.replace(/-/g, ' ') ) );
这对我在Chrome和Firefox浏览器中有效,希望对您有所帮助。
答案 3 :(得分:-1)
/// Below example will work in All Browser including IE
<script>
var selected_date = '2019,Apr,05'; // You need to change date format like this
var parsing_date = Date.parse(selected_date.replace(/^(.*-[0-9][0-9])(\ )([0-9][0-9]\:.*$)/, '$1T$3'));
alert(parsing_date);
</script>