2015-04-21 59 views
-2

我想通過使用moment.js將GMT日期時間字符串顯示爲IST(GMT + 0530)時間格式。我將PHP日期時間值分配給一個javascript變量,然後使用moment.tz().format();方法將GMT時間轉換爲IST時間。但是,當我通過指定格式參數提醒轉換後的值時,警報將顯示帶中文字母的格式化時間。 moment.js顯然令人困惑。請幫我解決這個...使用moment.js將PHP myadmin時間字符串轉換爲適當格式的本地時區(IST)js

  • GMT時間值是"2014-11-28 20:15:26"這是我從PHP變量

  • "2014-11-29T01:45:26+05:30"得到的是日期時間變量的轉換值的值通過使用moment.tz(m,zone).format();

  • 到IST
  • "11月 29日 2014 1:45 早上"是轉換後的值的與格式參數的值moment.tz(m,zone).format('MMM Do YYYY h:mm a');

我的代碼是

var start_dates = '<?php echo $times_start; ?>'; 
var zone = "Asia/Kolkata"; 
var m = moment.tz(start_dates,'Europe/London').format(); 
var time = moment.tz(m,zone).format('MMM Do YYYY h:mm a'); 
+1

時區與輸出格式無關。 – Nit

回答

1

你能得到中國字符的唯一方法是,如果你已經設置了中國區域與任langlocale功能。你可能已經在腳本的其他地方完成了。

關於您編寫​​的代碼,將輸入解釋爲倫敦時間 - 與GMT或UTC不同。 (GMT與夏令時之間的倫敦交替使用夏令時)

您也不需要格式化它只是爲了解析它。

你只需要做到這一點:

var m = moment.utc(start_dates); 
var time = m.tz(zone).format('MMM Do YYYY h:mm a'); 

這將根據支持的區域合作。但是如果你知道一個事實,你將永遠轉換到印度標準時間,因爲它不使用DST,你並不需要時刻。你可以這樣做:

var m = moment.utc(start_dates); 
var time = m.utcOffset("+05:30").format('MMM Do YYYY h:mm a'); 
+0

我沒有在腳本中的任何地方提到任何locale或lang函數。實際上我不知道這些東西,因爲我第一次使用js的時候,我不知道這些東西。無論如何謝謝你的頭開始。我會嘗試一下,讓你知道如果這件事再次發生。 @Matt Johnson –

相關問題