2015-11-09 38 views
1

我得到我的日曆中像這樣的開始日期:如何用momentjs獲取開始和結束日期?

var date_start = $('#calendar').fullCalendar('getView').start 

.toDate()我可以看到這個結果在Chrome控制檯:

星期一2015年11月9日01:00:00 GMT + 0100( ORA SOLARE歐羅巴開賽)

我需要顯示這樣的結果:

星期一2015年11月9日00:00:00

我也希望得到一天結束的時候,應該是這樣的:

星期二二零一五年十一月十日00:00:00

我該如何達到這個結果?

回答

2

toDate返回JavaScript Date對象。因此任何輸出字符串都是基於Date.toString的具體實現。如果你想要特定的輸出,你應該使用時間的format函數進行格式化。

date_start.format("ddd MMM DD YYYY HH:mm:ss") 

但是,這將返回01:00,您要求00:00。目前還不清楚您是在詢問當地的初始日期,還是您要求的UTC值相等。

如果你想一天的地方開始:

date_start.clone().startOf('day').format("ddd MMM DD YYYY HH:mm:ss") 

如果你想對應的UTC值:

date_start.clone().utc().format("ddd MMM DD YYYY HH:mm:ss") 

克隆是重要的,因爲那一刻對象是可變。如果您不克隆,那麼您將操縱原始時刻,這可能會在fullcalendar中產生意想不到的副作用。您可以使用上面顯示的clone函數,也可以將其包裝在矩功能中,如moment(date_start)...這兩者都執行相同的操作。

對於結束值,看起來像你想的第二天開始,所以這樣做:

date_start.clone().startOf('day').add(1, 'day').format("ddd MMM DD YYYY HH:mm:ss") 

或者:

date_start.clone().utc().add(1, 'day').format("ddd MMM DD YYYY HH:mm:ss") 

再次,挑選對應於您使用的一個場景。

僅供參考 - 您似乎需要UTC,但在絕大多數情況下,向用戶顯示日曆(如fullcalendar)時,本地時間更相關。

+0

只是一件事:.clone()返回不是一個函數爲什麼? –

+0

克隆返回一個新的時刻對象。你爲什麼期望它返回一個函數? –

+0

一個問題:pastebin.com/Qm5Wyzsm如何看到返回+0100可能設置+0000或刪除gmt? –

相關問題