阅读提示
本文约 549 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
本文约 549 字,预计阅读 2 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:美国用户看北京时间的截止
跨区站显示”今天 24 点截止”用北京时间,美国用户误判。时区内容须按访客时区或明确标注,否则误导。
原理分析:时区呈现
- 显式标注:始终带时区(如 “截止 2026-12-25 23:59 UTC+8″)。
- 按访客:JS 取
Intl.DateTimeFormat的时区或Date.getTimezoneOffset转本地显示。 - 营业时间:存 UTC,按访客时区算本地。
保姆级实操
JS 转本地:
const dt = new Date('2026-12-25T23:59:00+08:00');
console.log(new Intl.DateTimeFormat('en-US',{timeZoneName:'short'}).format(dt));
展示始终标源时区,并用”您所在时区为 X”提示。
常见坑
- 不标时区,误导。
- 服务端按服务器时区,错。
- 案例:某站截止用北京时间,美用户错过,改显 UTC+标注+本地换算后清晰。
- 营业时间存本地不存 UTC,跨区乱。
- 夏令时不处理,差一小时。
总结
判断标准:时间显源时区+按访客本地换算。行动清单:存 UTC → 标时区 → 本地显示 → 提示 → 测夏令时。详见多语言日期数字单位格式。
觉得有用?点个赞支持一下
