2016-11-07 64 views

回答

2

这是因为有串两个不可见的字符:U-200E(左到右引号)在开头和结尾:

new Date().toLocaleTimeString().split(':')[0] == "\u200e12\u200e" // true 

toLocaleTimeStringECMA-402定义here浏览器是否支持ECMA-402 ;否则,这完全取决于实施。 IE不支持ECMA-402,因此它可以将任何东西放入喜欢的字符串中。包括左到右标记似乎做一个奇怪的事情,但...

+0

哇......谢谢。看起来我有一些阅读要做。我从来没有听说过这个你说的 – rikkitikkitumbo

+0

T.J:任何想法,为什么IE做到这一点? Chrome似乎没有... – Cerbrus

+1

@Cerbrus:没有。 : - |坦率地说,这似乎是一件奇怪的事情。 –

0

奇怪的是,似乎有在那个时间字符串周围的数一些不可见的字符:

enter image description here

这可以回避/通过解析分裂部为整数解决:

var part = new Date(2016, 00, 01, 10, 55, 30) // Fri Jan 01 2016 10:55:30 
 
    .toLocaleTimeString().split(':')[0]; 
 

 
console.log(part); 
 
console.log(part == "10"); 
 
console.log(parseInt(part) == 10);