JS实现:计算不同时区的当地时间

国内的时间都以北京时间为准(即东八区的时间),如何计算同一时间下其它时区的当地时间呢?

通常的做法,是计算出时区差,然后进行加减。

还有另一种方法,就是先把本地时间转为 0时区的utc时间(世界标准时间),再进行计算,如下所示。

javascript 复制代码
// zone 表示时区,正数为东时区,负数为西时区
function getlocalTime(zone){
    var d = new Date();
    // 获取本地时间
    var local_ms = d.getTime();
    // 本地时间与UTC时间的 时间偏移差(getTimezoneOffset的单位是min)
    var offset_ms = d.getTimezoneOffset() * 60 * 1000;
    // 转为utc时间,因为各时区的utc时间相同
    var utc_ms = local_ms + offset_ms;
    // 计算出 目标时区 的标准时间
    var target_ms = utc_ms + zone * 60 * 60 * 1000;
    return new Date(target_ms);
}

getLocalTime(8); // 获取 东八区-北京时间(中国)
getLocalTime(-8); // 获取 西八区-太平洋时间(美国和加拿大)
相关推荐
环信13 小时前
即时通讯服务的数据安全与合规实践
前端
px不是xp13 小时前
【灶台导航】优化纠错实录
javascript·微信小程序
轻闲一号机13 小时前
【语音】笔记
前端·笔记·算法
初心丨哈士奇13 小时前
一行 # 的差别:彻底搞懂前端路由的 hash 和 history 模式
前端·浏览器
羊羊小栈13 小时前
非物质文化宣传系统(基于前后端Web开发)
前端·人工智能·毕业设计·大作业
环信13 小时前
从SLA到弱网对抗-环信即时通讯云的可靠性工程
前端
半个落月13 小时前
前端工程化第一步:BEM 国际命名规范与 CSS Reset 实战
前端·css
kyriewen14 小时前
开源|Image Harvest v1.0.5:AI 智能标签 + Eagle 导出,设计师和开发者的图片工作流神器
前端·javascript·ai编程
wuhen_n14 小时前
LangChain Memory 详解:实现 AI 连续对话不丢失上下文
前端·langchain·ai编程
wuhen_n14 小时前
LangChain Function Call 实战:让 AI 调用自定义工具
前端·langchain·ai编程