簡體   English   中英

使用moment將日期時間字符串格式轉換為本地日期時間瀏覽器

[英]Convert a datetime string format to local datetime browser using moment

我嘗試將dateTime字符串格式( 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日星期四09:30:15 GMT + 0300(GTB夏令時)
  • inputDate.getTimezoneOffset( )= -180
  • 偏移 = -3;
  • formatedDateFinale = '13 / 04/2017 12時30分十五秒

如果您想幫助我,請先謝謝。

您似乎正在嘗試使用特定的字符串格式將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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM