我需要获取位于另一个国家/地区的其他用户的时差(以小时和分钟为单位)。这是我所做的。
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 之间的差异
首先,使用
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");