用户从 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/