需求

时间要求显示如下,需要带上时区偏移量

2023/02/21 20:40:47 +08:00

js如何计算这个偏移量

执行 getTimezoneOffset() 方法会返回 UTC 相对于当前时区的相差分钟数。我们只需要再除以 -60 就得到了小时的偏移量。

// 时区偏移量
function timeFormatZoneOffset() {
let offset = new Date().getTimezoneOffset() / -60; // 当前时区偏移量
return `${timeZoneOffset(offset)}`;
}
// 返回时区 +08:00 -07:00
function timeZoneOffset(time) {
if (time === 0) {
return `00:00`;
}
if (time > 0) {
return (time < 9 ? `+0${time}:00` : `+${time}:00`);
}
if (time < 0) {
let abs = Math.abs(time);
return (time < 9 ? `-0${abs}:00` : `-${abs}:00`);
}
}

小知识

当我电脑是东八区时

时间处理库 momnet

js获取时区偏移量_开发语言


new Date()

js获取时区偏移量_偏移量_02


当我电脑是东八区时

js获取时区偏移量_Math_03


可以得出结论: moment 库 和 new Date() 其实是会对时间戳,根据客户端本地的时区自动进行转换的