2017-04-25 54 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

你不应该在这里提问。请在新问题中提出具体问题。谢谢。 –

相关问题