2016-09-25 97 views
0

我想存儲和檢索一個日期對象,該日期對象在保存時應該保持一致,無論瀏覽器設置爲何種時區。在不影響實際時間的情況下在時區之間進行轉換?

例如。我有一個7PM的IST,當用偏移量轉換時,應該返回到我選擇的時區的下午7點。 然後,我希望能夠中檢索相​​同的時間戳爲下午7點的任何時區的瀏覽器是英寸

我已經想通了,第一部分

var date = moment(date); 
var localDate = date.clone(); 
localDate.tz(timezone); // continent/city from momentjs 
localDate.tz(timezone); 
localDate.add(date.utcOffset() - localDate.utcOffset(), 'minutes'); 
localDate.toDate(); 

最終給我的日期,我可以用它來保存到數據庫中的UTC(我將其保存在MongoDB中)

我不知道我如何能扭轉它返回到本地時區,這樣我可以得到的返回值作爲瀏覽器時區的晚上7點。

+1

用UTC保存日期後,不再有源偏移量。因此,要將其轉換回目標時區的同一時間,您需要捕獲源偏移量,以便將其轉換回源偏移時間,然後用目標時區偏移該差異。 Btw在不同時區有相同的時間可能會導致時區規則更改時出現歧義或節省日光。 – Veeram

+0

ECMAScript日期對象是UTC,它是具有偏移量的主機。如果您在特定時區有7pm,並將時區更改爲具有不同偏移量的時區,則時間應該改變。否則,它代表了不同的時刻。 – RobG

回答

0

轉換成日期UTC格式保存到數據庫

moment.utc() 

每當你retrive從UTC轉換爲本地時間之前。

moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat) 
+0

對不起,但我需要將日期作爲日期對象存儲在mongodb中。 – Bazinga777

+0

我已更新答案。讓我知道這是否能解決你的目的 –

相關問題