2017-04-25 77 views
0

我嘗試將日期時間字符串格式(dd/MM/yyyy HH:mm:ss)轉換爲本地用戶時間。此代碼的工作,但我認爲這是可以使用moment.js可以寫出更簡單...但是,我不明白怎麼。使用時刻將日期時間字符串格式轉換爲本地日期時間瀏覽器

$(document).ready(function() { 
     $(".DateToLocalTime").each(function() { 
      ConvertToLocalTime(this); 
     }); 
    }); 

function ConvertToLocalTime(div) { 
    debugger; 
    var input = div.innerText; 
    var formatedDate = moment(input, 'DD/MM/YYYY HH:mm:ss').format(); 
    var newDate = moment.utc(formatedDate).toDate(); 

    var offset = newDate.getTimezoneOffset()/60; 
    var hours = newDate.getHours(); 

    newDate.setHours(hours - offset); 
    var formatedDateFinale = moment(newDate).format('DD/MM/YYYY HH:mm:ss'); 
    div.html(formatedDateFinale); 
} 

例如: 如果我有這個日期:13/04/2017 09:30:'15作爲輸入,則:

  • formatedDate =「2017-04- 13T09:30:15 + 03:00"
  • inputDate =星期四2017年4月13日9點30分一十五秒GMT + 0300(GTB夏令時間)
  • inputDate.ge tTimezoneOffset()= -180
  • 偏移 = -3;
  • formatedDateFinale = '13/04/2017年12點30分15秒

很多感謝,如果你想幫助我。

回答

1

它看起來像你想從UTC轉換爲本地時間,與特定的字符串格式。

你試圖做太多手動。時刻可以爲你做到這一點。

// define the format 
var fmt = 'DD/MM/YYYY HH:mm:ss'; 

// parse your input string as UTC, using that format 
var m = moment.utc(input, fmt); 

// convert to local time 
m.local(); 

// create the output string in the same format 
var result = m.format(fmt); 

或者乾脆:

var fmt = 'DD/MM/YYYY HH:mm:ss'; 
var result = moment.utc(input, fmt).local().format(fmt); 
+0

非常感謝你!!!! –

+0

我還有一個問題。如果我想根據目前的養殖區要顯示的日期格式,我讀,我可以使用** moment.lang(的CurrentCulture)**,但我怎麼能根據這種文化得到** ** FMT變量? –

+0

你不應該在這裏提問。請在新問題中提出具體問題。謝謝。 –

相關問題