You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用TypeScript基于时区计算不同地区的时间差(小时和分钟)

计算本地时间与指定时区时间的差值

你当前代码里的arr是格式化后的字符串,没法直接和currentTime(Date对象)计算时间差。得先把目标时区的时间转换成可用于计算的Date对象,再一步步算出小时和分钟级别的差值。

下面是修正后的TypeScript代码:

const timeZone = "Asia/tokyo"; // 可按需修改目标时区

// 将指定时区的当前时间转为Date对象
const targetTime = new Date(new Date().toLocaleString("en-US", { timeZone }));
const currentTime = new Date();

// 计算两个时间的毫秒差,取绝对值避免负数
const diffMs = Math.abs(currentTime.getTime() - targetTime.getTime());

// 把毫秒差转换为小时和分钟
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
const diffMinutes = Math.floor((diffMs % (1000 * 60 * 60)) / (1000 * 60));

console.log(`两地时间差:${diffHours}小时${diffMinutes}分钟`);

关键步骤说明

  • 先用toLocaleString结合指定时区生成对应时间的字符串,再用new Date()将其转为Date对象,这样就能拿到目标时区当前时间的时间戳
  • 计算毫秒差后,通过整除和取余操作,把毫秒数拆解为小时和分钟
  • 用Math.abs确保差值为正数,不用纠结本地和目标时区哪个更早

内容的提问来源于stack exchange,提问作者coding....

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 14:42:49