2013-10-18 53 views
3

我不明白這個代碼:如何在momentjs中顯示'2013-10-20'?

moment('2013-10-18').format('YYYY-MM-DD'); // 2013-10-18 
moment('2013-10-19').format('YYYY-MM-DD'); // 2013-10-19 
moment('2013-10-20').format('YYYY-MM-DD'); // 2013-10-19 
moment('2013-10-21').format('YYYY-MM-DD'); // 2013-10-21 
moment('2013-10-22').format('YYYY-MM-DD'); // 2013-10-22 

這是一個錯誤還是我的錯誤?

http://jsfiddle.net/9CRCz/

enter image description here

+1

http://jsfiddle.net/9CRCz/2/ – megawac

+0

嗯..什麼問題? –

+0

我沒有看到問題? – megawac

回答

7

上週日10月20日,巴西進入夏令時。時鐘在午夜改變,向前跳一小時。這意味着您給出的日期(默認爲午夜以來沒有給過時間)會被錯誤地解釋。如果輸出時間,則可能會看到諸如23:00:00之類的內容,而不是預計的午夜。

要解決這個問題,請使用'2013-10-20 12:00:00' - 午餐肯定不會受到DST的影響,足以改變日期!所以這將保證日期不變。

+1

我只是寫這個,你擊敗了我! :)我們已經在[時間問題#1069](https://github.com/moment/moment/issues/1069)中討論過這個問題。主要問題是你在午夜時分與巴西的DST描述過。第二個問題是一些瀏覽器會向前調整,而其他瀏覽器(如Chrome)則會向後調整。你的解決方法是現貨。 –

+0

非常感謝! –

相關問題