没有"=10="()"=11="什么的

IE Date.Parse() returns NaN

我正在尝试解析这个字符串

"2017-06-01 11:22:20.683"

它在 Firefox 中工作得很好,但 return NaN 在 IE 11 中
不幸的是,我无法修改源字符串,因为它来自遗留系统。

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>

不幸的是,这个 API 不太可靠。 Edge 仍然给你一个NaN。不过你有两个选择:

1) 使用名为 MomentJS 的外部库。非常易于使用,并实现了所有极端情况。 (http://momentjs.com/docs/)

2) 参考这个问题手动解析:Why does Date.parse give incorrect results?

希望对您有所帮助

这是最简单的解决方案:

function myFunction(dateString) {
    var str = dateString.replace(/^(.*-[0-9][0-9])(\ )([0-9][0-9]\:.*$)/, 'T')
    var d = Date.parse(str);
    document.getElementById("demo").innerHTML = d;
}
/// 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]\:.*$)/, 'T'));
 alert(parsing_date); 
</script> 

请不要将“-”替换为“/”,请改用空格。

var str = "15-Dec-2019 05:25:45 PM ";
console.log( Date.parse( str.replace(/-/g, ' ') ) );

这在 Chrome 和 Firefox 浏览器中对我有用,希望对您也有帮助。