javascript - 使用偏移分钟从 UTC 获取日期时间

标签 javascript momentjs

用户从 utc 偏移分钟数为 360.000009361667,现在我想使用 moment 获取当前用户日期时间

function getUserTimeZoneDateTime() {

    var currentUtcDateTime = moment.utc().toDate();
    var mod_start = new Date(currentUtcDateTime.setMinutes(GlobalValues.OffsetMinutesFromUTC - currentUtcDateTime.getTimezoneOffset()));
    var currentUserDateTime= moment(mod_start).format('MM/DD/YYYY h:mm A');

    return currentUserDateTime;
};

但这给了我正确的日期,但时间不正确 它只给我下午 5 点、下午 6 点的时间部分,分钟四舍五入为 0。

但我想要的是带有分秒的当前日期和时间。

最佳答案

您忘记将分钟添加到 setMinutes:

function getUserTimeZoneDateTime() {

    var currentUtcDateTime = moment.utc().toDate();
    var mod_start = new Date(currentUtcDateTime.setMinutes(currentUtcDateTime.getMinutes() + GlobalValues.OffsetMinutesFromUTC - currentUtcDateTime.getTimezoneOffset()));
    var currentUserDateTime= moment(mod_start).format('MM/DD/YYYY h:mm A');

    return currentUserDateTime;
};

您在括号中使用错误的差异始终是整数小时数。

您还可以使用更简单的方法:moment(obj).utcOffset(OffsetMinutesFromUTC); 设置偏移量:

function getUserTimeZoneDateTime() {
    var currentUtcDateTime = moment.utc().toDate();
    return moment(currentUtcDateTime).utcOffset(GlobalValues.OffsetMinutesFromUTC - currentUtcDateTime.getTimezoneOffset()).format('MM/DD/YYYY h:mm A');
};

关于javascript - 使用偏移分钟从 UTC 获取日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48272480/

相关文章:

javascript - 将 momentjs 与重复日期一起使用

node.js - 如何在nodejs中确定两个日期是本地时间的同一天?

javascript - 计算日期差异,获取小时、分钟和秒的差异 - 最好通过 js,否则 moment.js

node.js - 如何将 Node Date()插入到postgresql时间戳列中?

javascript - 如何添加一个计数器来显示找到了多少文本匹配项

javascript - UIslider 按钮不适用于复选框过滤器

javascript - Javascript中promise和@@iterator的问题

javascript - react 钩子(Hook) : handle multiple inputs

javascript - 如何在鼠标悬停时创建跨度内容?

javascript - 使用 moment.js 计算下一次下午 2 点之前的时间