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); // 获取 西八区-太平洋时间(美国和加拿大)
相关推荐
shuaijie05182 分钟前
当表格数据量过大的时候,如何使用不分页进行展示
javascript·vue.js·ecmascript
光影少年4 分钟前
web端安全问题有哪些?
前端·安全
行走的陀螺仪11 分钟前
Vite & Webpack 插件/Loader 封装完全指南
前端·webpack·node.js·vite·前端工程化·打包构建
1024肥宅16 分钟前
浏览器网络请求 API:全面解析与高级封装(1)
前端·websocket·axios
小费的部落18 分钟前
Excel 在Sheet3中 匹配Sheet1的A列和Sheet2的A列并处理空内容
java·前端·excel
霍格沃兹测试学院-小舟畅学19 分钟前
Cypress 入门与优势分析:前端自动化测试的新利器
前端
1024肥宅19 分钟前
浏览器网络请求 API:全面解析与高级封装(2)
前端·websocket·axios
幼儿园技术家25 分钟前
深入理解 CSR / SSR / SSG:前端三种渲染模式的本质与选型
前端
How_doyou_do30 分钟前
常见的设计模式
前端·javascript·设计模式
38242782733 分钟前
汇编:条件汇编、
前端·汇编·数据库