如何获取基于时区的时差?

问题描述 投票:0回答:1

我需要获取位于另一个国家/地区的其他用户的时差(以小时和分钟为单位)。这是我所做的。

const timeZone = "Asia/tokyo"; // Time zone can be changed

let arr: any = new Date().toLocaleString("en-US", {
  timeZone: timeZone,
  dateStyle: "full",
  timeStyle: "full",
});

let currentTime = new Date();

需要获取 currentHour 和 arr 之间的差异

javascript typescript date time timezone
1个回答
0
投票

首先,使用

en-CA
语言环境进行“计算”...它输出
yyyy-mm-dd hh:mm:ss
,这使得操作变得简单

其次,根据需要添加

hour12: false
24 小时时间

那么你可以

const timeZone = 'Asia/Tokyo'
const date = new Date();
date.setMilliseconds(0); // remove millisecond since we are not creating the "other" time with milliseconds
const other = new Date(...date
  .toLocaleString('en-CA', {
    timeZone,
    hour12: false,
  })
  .replaceAll('-',':') // convert yyyy-mm-dd to yyyy:mm:dd
  .replaceAll(', ', ':') // add ':' between date and time
  .split(':') // split all the values
  .map((v,i) => v - (i===1)) // subtract one from month
);
  
console.log("other time", other.toLocaleString());
console.log("local time", date.toLocaleString());
console.log("difference", (other-date)/60000, "minutes");

© www.soinside.com 2019 - 2024. All rights reserved.