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); // 获取 西八区-太平洋时间(美国和加拿大)
相关推荐
vx-程序开发24 分钟前
django医院预约挂号系统---附源码23353
java·javascript·spring boot·python·eclipse·django·php
宿6741 小时前
tsconfig.node.json
前端·javascript·vue.js
小杨互联网1 小时前
Cursor 前端 Dist 自动化逆向框架:/fr 流水线 · 4 脚本 · Vite/Webpack
前端·webpack·自动化·前端逆向框架·ai前端逆向框架
瑞码空间1 小时前
Web应用的多端部署之道:浏览器 · Electron · Docker
前端·docker·electron·浏览器·web
徐奥雯XUAOWEN1 小时前
Codex官网前端可抄吗?从技术视角深度解析与借鉴指南
前端
文艺理科生1 小时前
3 年,8 种方案,1 次重构:LangChain 记忆方案如何从混乱走向清晰
前端·后端·架构
lilian2331 小时前
Harmony os 技术实战|拼豆制图10:把取消、解析失败和保存失败写成可恢复状态机
java·javascript·华为·harmonyos
huabuyu1 小时前
SourceMap:从「看不懂线上报错」到「让 AI 定位真根因」
前端·javascript
এ慕ོ冬℘゜2 小时前
前端树形二级列表渲染 + 页面传参完整实战解析(附原生jQuery源码)
前端·javascript·jquery
weixin_469273812 小时前
.md文件是什么?.md如何打开?
前端·编辑器