2016-11-07 63 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);