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); // 获取 西八区-太平洋时间(美国和加拿大)
相关推荐
呃呃呃呃ex16 分钟前
2026年古法编程的末法时代,如何评估自己完成迅速转行
前端·后端
南京兴帝文化传媒有限公司18 分钟前
地图SEO与AI搜索优化结合实践:宁国摄影工作室本地获客案例分析
大数据·前端·人工智能·geo 优化·geo优化避坑
用户9210802628624 分钟前
前端 Vue 专栏 07:模板编译、虚拟 DOM、Diff 与 key
前端
八荒启_交互动画27 分钟前
Web特效03——像素VS顶点:图形处理的的两种基本单位
javascript
光影少年28 分钟前
react navite process.nextTick 和 Promise.then 的执行顺序
前端·react native·react.js
雪芽蓝域zzs29 分钟前
第四十二节:全局字典封装(后端字典,下拉选择复用)
开发语言·前端·javascript
用户645965987108832 分钟前
Nginx + Vue Router 基础:SPA History 部署、反向代理与请求分流
前端
样子201832 分钟前
Js 之根据白名单过滤 HTML(防止 XSS 攻击)
android·前端·javascript·html·xss
lewis_lk34 分钟前
ReactJs状态迷思:从"常量"到"闭包陷阱"的底层逻辑
前端·react.js
尘世中一位迷途小书童35 分钟前
在 Cesium 上画全球网格:我们怎么把 GeoSOT 接到瓦片调度上
前端·javascript·前端框架