搜索全站
multilingual 2 分钟阅读

多语言时区与营业时间展示:多时区内容正确呈现

多语言/跨区站如何按访客时区显示营业时间、活动、截止日期:用浏览器时区或语言推断、明确标注时区,避免"今天截止"误导用户。

U
UFO_PF 2017-10-10 · 阅读 2 分钟
多语 MULTILINGUAL
阅读提示
本文约 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”提示。

常见坑

  1. 不标时区,误导。
  2. 服务端按服务器时区,错。
  3. 案例:某站截止用北京时间,美用户错过,改显 UTC+标注+本地换算后清晰。
  4. 营业时间存本地不存 UTC,跨区乱。
  5. 夏令时不处理,差一小时。

总结

判断标准:时间显源时区+按访客本地换算。行动清单:存 UTC → 标时区 → 本地显示 → 提示 → 测夏令时。详见多语言日期数字单位格式。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。