前端东八区时差,业务踩坑,掘金也存在此问题

1,016 阅读1分钟

前段时间微软版权问题,公司台式电脑从盗版windows转为Deepin(linux)系统,笔记本win正版家庭版系统可以正常继续使用。

在某个业务上,前端保存当前时间传给后端,测试妹妹是window系统发现时间不一致的问题。 linux中打印的时间默认是没有+8

6540e1bea1b536f0803658a91c45d02a.png

Date().getTimezoneOffset()

可以通过 Date().getTimezoneOffset() 获取时差,在linux上取值是0,在windows上取值是-480

const now = new Date();
let offset = new Date().getTimezoneOffset(); // 返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。
let diffTime = offset * 60 * 1000 + 8 * 60 * 60 * 1000;
let nowDate = new Date(now.getTime() + diffTime);
console.log("东8区时间:" + nowDate);

在掘金当中也存在当前问题 发文时间上午10点,显示时间为上午2点。