2014-07-14 37 views
7

我們使用新的Date()。toISOString()以ISO格式存儲每個日期數據。node.js無法解析ISOString日期?

我試圖將此ISO格式的日期轉換爲node.js中的Date對象,但我得到Invalid Date響應。

日期字符串爲isoDate = 2014-07-09T14:00:00.000Z 和我Date.parse(isoDate);new Date(isoDate);console.log但每次返回NaNInvalid Date

我檢查日期字符串是否包含任何看不見的錯誤字符,但它們很好,可以在瀏覽器控制檯上轉換。

這是否意味着我需要手動轉換字符串並使用分析字符串創建Date對象?

感謝您的閱讀。

+0

作品就好了這裏...你確定isoDate是一個字符串? (而不是 - 例如 - 一個緩衝區) – Bart

+0

是的,只是typeof檢查它說的字符串。這可能是版本特定的?我們目前使用0.10.29。 –

+0

我使用的是相同的版本。在任何情況下,它應該在任何節點版本中工作... – Bart

回答

1

嘗試使用moment庫。它具有很多功能來處理日期,並且可以很容易地在客戶端和服務器端使用。調用moment("2014-07-09T14:00:00.000Z").toDate()將使用此庫將字符串轉換爲日期JavaScript對象。

0

我發佈了這個答案,以防萬一有人像我這樣經歷過。

發生了什麼事給我的是,我想我是從瀏覽器

{ 
    startDate: date.startDate 
} 

這實際上我發送一個時刻實例作爲參數

當我在網絡檢查,我發現檢查發送ISOString指出,被髮送的數據是ISO格式 - 是的,但它是用雙引號「」

{ 
    startDate: "2016-12-31T16:00:00.000Z" 
} 

它不應該被包含在雙qoutes和壽LD這個樣子的

{ 
    startDate: 2016-12-31T16:00:00.000Z 
} 

什麼工作對我來說是解析當下ISO串

{ 
    startDate: date.startDate.toISOString() 
}