2013-05-20 34 views
1

我有一個時刻,我想存儲在本地存儲和比較對以後使用isBefore()爲什麼stringify'd moment.js日期返回不同的值時解析回

當我把這個時刻it converts it stringify到ISO8601格式,很好。但是,當我試圖通過將它變成一個新時刻來重新發揮它的作用時,它具有不同的價值。時區正在被時區轉換抵消。

它是這樣的:

moment().hour(); = 21

JSON.stringify(moment()); = 「2013-05-20T21:38:31.819Z」`

moment("2013-05-20T21:38:31.819Z").hour(); = 22

顯然,這裏的問題與ISO8601採用UTC格式有關,但無論我如何使用utc()函數,都不會改變下面的基本值不同的事實。

我該如何將某一時刻字串化,然後再用剩餘的值進行解析呢?

回答

0

我對此的解決方法是強制轉換字符串時不使用utc。所以,凡foobar的是對象在本地存儲sotred,如果:

foobar.expires = 2013-05-22T15:30:23.834Z

則聲明:

moment(foobar.expires, "YYYY-MM-DDTHH:MM:SS.SSS")

將返回最初stringify'd在同一時刻它存儲在本地存儲中。

凌亂的黑客。

+0

正確的格式字符串應該是:「YYYY-MM-DDTHH:mm:ss.SSS」 –

相關問題