momentjs - 通过时刻转换为 UTC 时,时间缩短一小时 - utcOffset 不起作用
问题描述
将时间转换为 UTC 时,它显示的时间比预期的少一小时
我正在通过时刻更新点网变量以转换时间并将本地系统时间显示给用户。但是转换后我少了一个小时。尝试 utcOffset 但出现错误 utcOffset 不是函数。任何建议
其中 formData.SubmittedDate = "6/7/2019 5:44:59 AM"
$('[data-utcdate]').each(function () {
var d = moment($(this).attr('data-utcdate'));
//var isDST = d.utc().local().isDST();
//var d = moment(d).utcOffset(d);
d = d.utc();
$(this).html(d.format('MMM D, YYYY h:mm A'));
})
获取时间:2019 年 6 月 7 日上午 12:14 预计时间:2019 年 6 月 7 日上午 11:44
解决方案
从文档:
以分钟为单位获取 UTC 偏移量。
因此,您可以使用add之类的操作方法:
$('[data-utcdate]').each(function () {
var d = moment($(this).attr('data-utcdate'));
var offset = d.utcOffset() // will return the offset in minutes
var time = d.add(offset, "m");
$(this).html(time.format('MMM D, YYYY h:mm A'));
})