获取 Javascript 中其他位置的偏移量

2023-12-11

我在亚洲,我想计算澳大利亚的偏移量。我知道如何计算偏移量的值,代码如下:

var timezone_offset = new Date().getTimezoneOffset();

但其他地点如何计算呢?有人可以指导我吗??


虽然这can如果要在一个简短的函数中完成,最好使用一个库,因为有许多怪癖需要克服。可以使用时区选项来确定偏移量到区域设置字符串 or 国际日期时间格式.

但是,如果用于格式化的语言与位置的语言匹配,它将返回时区缩写而不是偏移量。为了解决这个问题,以下函数首先使用英语,如果返回缩写而不是偏移量,则它使用法语。英语偏移量以 GMT 开始,法语偏移量以 UTC 开始。当偏移量为 +0 时,它们仅返回“GMT”或“UTC”。

它已在列出的所有 IANA 位置进行了测试维基百科似乎对所有这些都有效,但应该进行更广泛的测试。此外,在尝试运行之前应该进行功能测试(即支持整数日期时间格式构造函数,格式化为零件方法和时区名称选项)。

// Return offset on date for loc in ±H[:mm] format. Minutes only included if not zero
function getTimezoneOffset(date, loc) {
  // Try English to get offset. If get abbreviation, use French
  let offset;
  ['en','fr'].some(lang => {
    // Get parts - can't get just timeZoneName, must get one other part at least
    let parts = new Intl.DateTimeFormat(lang, {
      minute: 'numeric',
      timeZone: loc,
      timeZoneName:'short'
    }).formatToParts(date);
    // Get offset from parts
    let tzName = parts.filter(part => part.type == 'timeZoneName' && part.value);
    // timeZoneName starting with GMT or UTC is offset - keep and stop looping
    // Otherwise it's an abbreviation, keep looping
    if (/^(GMT|UTC)/.test(tzName[0].value)) {
      offset = tzName[0].value.replace(/GMT|UTC/,'') || '+0';
      return true;
    }
  });
  // Format offset as ±HH:mm
  // Normalise minus sign as ASCII minus (charCode 45)
  let sign = offset[0] == '\x2b'? '\x2b' : '\x2d';
  let [h, m] = offset.substring(1).split(':');
  return sign + h.padStart(2, '0') + ':' + (m || '00');
}

let d = new Date();
console.log('Current offset for following locations:');
['Australia/Yancowinna',
 'Australia/Lord_Howe',
 'Australia/Canberra',
 'Pacific/Honolulu',
 'Europe/London',
 'Canada/Eastern'
].forEach( loc =>
  console.log(loc + ': ' + getTimezoneOffset(d, loc))
);

我不建议你使用这个函数,它实际上是为了展示获取特定位置的偏移量是多么混乱。

请注意,澳大利亚有许多补偿措施,有些地方实行夏令时,有些地方则不实行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 Javascript 中其他位置的偏移量 的相关文章

  • 使用 vscode 调试器调试 next.js

    我已经使用安装了一个项目创建下一个应用程序 https github com segmentio create next app 我需要使用我的编辑器 vscode 调试服务器端渲染 所以我访问过vscode recipes 如何调试 ne
  • 如何检查字符串是否为有效日期

    我有一个字符串 31 02 2010 并想检查它是否是有效日期 最好的方法是什么 我需要一个方法 如果字符串是有效日期 则返回 true 如果不是 则返回 false require date begin Date parse 31 02
  • 关闭选项卡时要求确认[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我在某些浏览器上关闭页面时 我希望出现一个消息框 并询问我是否真的要关闭页面 有两个按钮 如果我单击No那么这个标签就不会被关闭 我怎样
  • 从数据 URI 解码 QR 码

    我尝试从数据 uri 中解码二维码 var dataUri data image gif base64 R0lGODdh9gD2AIAAAAAAAP ywAAAAA9gD2AAAC decodeQrCode dataUri cb 我已经尝试
  • 解析时区并转换为夏令时

    我有一个 pandas 数据框Datetime column Datetime 0 2019 01 01 17 02 00 1 2019 01 01 17 03 00 2 2019 01 01 17 04 00 3 2019 01 01 1
  • 如何计算 pandas datetime 对象的均值和方差?

    如何计算 YYYY MM DD 形式的 python 日期时间对象的汇总统计数据 均值和标准差 我想对具有不同 ID 的不同日期时间对象组执行此操作 数据如下 import datetime as dt df pd DataFrame Da
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • Javascript正则表达式用于字母字符和空格? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我需要一个
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • 使用 KnockoutJs 映射插件进行递归模板化

    我正在尝试使用以下方法在树上进行递归模板化ko映射 插入 http knockoutjs com documentation plugins mapping html 但我无法渲染它 除非我定义separate每个级别的模板 在以下情况下
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • 如何使用tampermonkey模拟react应用程序中的点击?

    我正在尝试使用 Tampermonkey 脚本模拟对 React 元素的点击 不幸的是 由于 React 有自己的影子 DOM 所以天真的方法使用document querySelector 不工作 我遇到了一些需要修改 React 组件本
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 如何获取给定 DOM 元素的所有定义的 CSS 选择器?

    如何使用 jQuery 获取给定 DOM 元素的所有定义的 CSS 选择器 定义后 我的意思是在应用于任何样式表的所有 CSS 选择器document 在某种程度上 这类似于 FireBug 实现的功能 其中显示所选 DOM 元素的所有应用
  • Safari 支持 JavaScript window.onerror 吗?

    我有一个附加到 window onerror 的函数 window onerror function errorMsg url line window alert asdf 这在 firefox chrome 和 IE 中工作正常 但在 s
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B

随机推荐

  • Magento 将产品批量分配到类别

    正如标题所示 我需要将产品批量分配到一个类别 并且从管理员那里我一次只能编辑一个产品 我不知道为什么从类别页面的 类别产品 选项卡中批量添加它们不起作用 这就是为什么我需要另一种快速的方法 例如使用 phpMyAdmin 或类似的方法 有什
  • Android 上的 MongoDB

    有谁知道 MongoDB 如何在 Android 上运行 它可以在本地工作并且数据稍后会被复制吗 是否只能通过网络后端在线工作 MongoDB 有几个版本的下载操作系统 然而 Android 并不是这些系统之一 人们使用 MongoDB 作
  • 如何将二进制文件的全部内容保存到 postgres 数据库中?

    我正在尝试将二进制数据保存到 postgres 中 部分代码如下所示 string readFile2 const string fileName ifstream ifs fileName c str ios in ios binary
  • 使用按钮更改另一个类的某些内容的状态

    我是 React 新手 很难理解状态的概念 下面我从 MUI 导出一个步进器 我使用状态 export default function CustomizedSteppers const steps Zoninfo Betals tt B
  • 为什么不能在函数文字中为变量分配占位符?

    我无法理解函数文字中的下划线 val l List 1 2 3 4 5 l filter gt 0 工作正常 l filter gt 0 工作正常 l filter val x 1 1 3 gt 0 ie you can have mult
  • 使用 `seaborn.objects` 堆叠到 100%

    我正在尝试绘制一个图 其中条形或区域使用新的比例调整为 100 seaborn objects界面 我似乎无法理解so Norm 工作 无论有没有by 这是我到目前为止所得到的 import seaborn as sns import se
  • 测试向量的所有元素是否相等

    我想测试非空向量是否包含相同的元素 这是最好的方法吗 count vecSamples begin 1 vecSamples end vecSamples front vecSamples size 1 在 c 11 中 或升压算法 std
  • Pygame OpenGL 3D 立方体滞后

    我正在关注 pyOpenGL 上相当老的教程系列 我正在做的和他完全一样 然而我遇到了延迟 我有带有 8GB 内存的 AMD FX 6300 GTX 1050ti 并且文件存储在闪存驱动器上 我读过一些地方使用glBegin and glE
  • 八顶点立方体的法向量

    我正在使用 WEBGL 今天遇到了我的立方体顶点法线的问题 我用立方体网格检查了我的代码来自互联网而且效果很好 问题是 来自互联网的立方体有 24 个顶点 每个面 4 个顶点 6 个面 我认为这对于我的立方体来说太多了 摆弄我的立方体 Fi
  • 如何查询DOTNET_CLI_TELEMETRY_OPTOUT是否永久设置为TRUE?

    如果我输入 set DOTNET CLI TELEMETRY OPTOUT 1 or setx DOTNET CLI TELEMETRY OPTOUT 1 要永久保存此设置 则应将设置 DOTNET CLI TELEMETRY OPTOUT
  • 如何在CSV文件中同时转义逗号和双引号?

    我正在编写一个 Java 应用程序以将数据从 Oracle 导出到 csv 文件 不幸的是 数据的内容可能相当棘手 逗号仍是分隔符 但行上的某些数据可能如下所示 ID FN LN AGE COMMENT 123 John Smith 39
  • 阻止过期的访问令牌从资源服务器检索数据

    我一直在摆弄 IDS 4 但遇到了一个小问题 我将令牌生命周期设置为大约 15 秒 即使它们已过期 我仍然可以从资源服务器检索日期 如果我从客户端调用的标头中删除令牌 则会收到 401 错误 Client Authorize public
  • 尝试替换数据框中的特定值,但不覆盖它

    我的数据框看起来像这样orders total price amount side 0 0 003019 100 bids 0 0 003143 100 asks 当我尝试通过执行以下操作来替换特定值时 orders total order
  • powershell Get-ChildItem 结果数组

    Get ChildItem File Recurse Path path Fullname返回全名数组 Get ChildItem File Recurse Path path Name返回文件名数组 但 Get ChildItem Fil
  • 进度对话框不出现

    我的活动中有以下内容 我用它来下载用户的 LoveFilm 队列中的电影 但 ProgressDialog 从未出现 public class MyListActivity extends Activity SharedPreference
  • 将字节数组[十六进制]转换为字符数组或字符串类型+ Arduino [重复]

    这个问题在这里已经有答案了 我需要将十六进制字节数组转换为字符串 例如 byte array 4 0xAB 0xCD 0xEF 0x99 array 0 0xAB array 1 0xCD array 2 0xEF array 3 0x99
  • jqGrid拖放接收事件

    我正在使用jqgrid拖放 我有两个表表A和表B 我从表A中拖动一行并放入表B中 我想捕获表中收到的新行ID和数据 是否有任何接收事件在 jqGrid 中 您可以定义ondrop事件函数 参见此Link 像下面这样 jQuery table
  • C++ - thread_local 向量导致 MinGW 上的 join() 崩溃

    include
  • 通过引用返回。返回变量周围的括号

    http php net manual en function return php 通过引用返回时 切勿在返回变量周围使用括号 因为这是行不通的 您只能通过引用返回变量 而不能返回语句的结果 如果使用 return a 那么你返回的不是变
  • 获取 Javascript 中其他位置的偏移量

    我在亚洲 我想计算澳大利亚的偏移量 我知道如何计算偏移量的值 代码如下 var timezone offset new Date getTimezoneOffset 但其他地点如何计算呢 有人可以指导我吗 虽然这can如果要在一个简短的函数