前端获取国际化时间

1,168 阅读1分钟

如果将前端项目布置到云上面去,那么极有可能面对的一个问题就是:获取的时间并不是开发者所在时区的时间。开发者潜意识的疏忽这个问题并导致出错,因此,只要项目上了云,在获取时间的时候就必须指明所在的时区。

假如,云上布置的一个机器人需要每天晚上10点钟记录一条数据,那么正确的做法应该如下所示:

let dailyLaunch = false;
setInterval(
  () => {
    // 创建一个日期对象
    const date = new Date();
    // 配置时区
    const options = { timeZone: 'Asia/Shanghai' };
    // 使用配置的时区将时间戳转化成时间字符串
    const formattedDate = date.toLocaleString('zh-CN', options);
    // 解析得到当前时间
    const [hour, min, sec] = formattedDate.split(" ")[1].split(":");
    console.log(`现在是:${hour}:${min}:${sec}`);
    if (hour === 22 && !dailyLaunch) {
      sendRequestOnTheHour();
      dailyLaunch = true;
    } else if (hour !== 22) {
      dailyLaunch = false;
    }
  }, 1 * 60 * 1000
)