gpt4 book ai didi

javascript - 使用 moment 将日期时间字符串格式转换为本地日期时间浏览器

转载 作者:行者123 更新时间:2023-12-03 04:28:13 25 4
gpt4 key购买 nike

我尝试将日期时间字符串格式(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"
  • 输入日期 = 2017 年 4 月 13 日星期四 09:30:15 GMT+0300(GTB 夏令时)
  • inputDate.getTimezoneOffset() = -180
  • 偏移 = -3;
  • formatedDateFinale ='13/04/2017 12:30:15

如果您想帮助我,非常感谢。

最佳答案

您似乎正在尝试使用特定的字符串格式将 UTC 转换为本地时间。

您尝试手动完成太多工作。 Moment 可以为您做到这一点。

// 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);

关于javascript - 使用 moment 将日期时间字符串格式转换为本地日期时间浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43612259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com