尝试在IE 11中遵循以下代码。

var d= new Date();
var lt=d.toLocaleTimeString();
var localeTime= lt.split(“:”);
var str=parseInt(localeTime[0]);



parseInt返回NaN。
尝试将localeTime [0]处的值直接传递给parseInt()。它给出正确的输出,该输出是传递给parseInt()的String的数字形式。
尝试localeTime [0] === localeTime [0]的值。输出为假。

最佳答案

如果运行localeTime[0].length,您将看到它返回4

localeTime[0] // "20"
localeTime[0].length // 4
x.charCodeAt(0) // 8206 -> ???
x.charCodeAt(1) // 50 -> "2" as expected
x.charCodeAt(2) // 48 -> "0" as expected
x.charCodeAt(3) // 8206 -> ???


出于某种原因,在IE中,令牌的开头和结尾还有两个additional characters

为了使其正常工作,您需要通过删除所有非字母数字字符来规范化字符串。

parseInt(localeTime[0].replace(/\W/, '')) // returns 20 as expected

09-27 07:24