2014-06-09 111 views
0

我有一個要求根據用戶使用時刻js提供的時區字符串將(UTC/GMT)時間轉換爲本地時間。
如:時區轉換時刻js

utctime = "2014-06-09T05:36:06.005Z" 
timezone = "5.5" (Indian Standard Time) 
expected result = "2014-06-09 11:06" 

我曾嘗試一些代碼來實現這一

var local_date = moment.utc("2014-06-09T05:36:06.005Z").zone("+05:30").format('YYYY-MM-DD HH:mm'); 
console.log('local date', local_date); // 2014-06-09 11:06 

這裏我得到正確的結果。但是當我把「5.5」(timzone格式從用戶端獲得)時,我不得不將時區設置爲+05:30格式。

我得到用戶的時區類似下面的方式

-12, -11, .... -1 GMT 1, 2 .. 3.3, 5, 5.5, 5.75 ... 

有什麼辦法GMT時間轉換爲本地使用上面時區格式。請指導我正確的方向。如果不可能,我該如何將用戶輸入時區轉換爲我想要的格式。謝謝

+0

你能不能創建一個函數來直接代替你想要的一個接收到的時區的格式? (5.5 - >「05:30」等)。 – Cristy

+0

這是我最後的選擇。但在此之前,我不知道現在有什麼直接功能可以做到這一點。謝謝 – Dibish

+0

也許你可以在文檔中找到這個功能:http://momentjs.com/docs/。例如:'moment()。zone(minutesSinceGMT)''。這樣你只需要將接收到的數字乘以60即可。 – Cristy

回答

1

這可能會幫助你http://jsfiddle.net/8qtFy/

var yourvalue=parseFloat("5.5");   

moment.utc("2014-06-09T05:36:06.005Z").add('hours',yourvalue).format('YYYY-MM-DD HH:mm'); 
+0

非常感謝你的幫助,它的確幫助了我.. – Dibish