2014-07-14 104 views
4

我想與我分享今天在JavaScript中發現的內容。使用new Date().toISOString();JavaScript新日期(字符串)在完全相同的日期字符串上返回不同的結果

Simple example here

d1 = "2014-07-15T14:00:00.000Z" 
d2 = "2014-07-15T14:00:00.000Z" 

輸入串ISO格式化。 我從服務器接收到第一個日期,並將其作爲ISOString存儲在mongoDB中,第二個日期是手動創建的。

如果我做new Date(d1);,它返回'無效日期',但如果我對d2執行相同的操作,它將返回正確的日期。

+2

'的console.log(d1.length); console.log(d2.length);' –

+0

'console.log(d1 === d2); console.log(escape(d1)); console.log(escape(d2));' – epascarello

+0

謝謝你們發現了隱形角色。 –

回答

5

第一個包含非打印

0x20 0x3D 0x20 0x22 

字符

+0

噢,我的上帝?所以隱藏在第一個日期字符串前面的隱藏字符? –

+0

哦,我看到了..嘗試刪除第一個日期的第一個字符,然後手動把2和它產生日期..我不知道角色來自哪裏。但感謝您的答案! –