获取 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 中其他位置的偏移量 的相关文章

  • 将 javascript 合并到一个文件中

    最近阅读了雅虎的网络优化技巧并使用 YSlow 我在我的一个网站上实现了他们的一些想法http www gwynfryncottages com http www gwynfryncottages com你可以在这里看到该文件http ww
  • 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

    我对 Angular 很陌生 所以这可能是一个新手问题 我正在尝试实现一个简单的任务管理器 只是一个练习 以 Rails 作为后端 以 Angular 作为前端 到目前为止 我遵循了教程 一切正常 现在我想在全球范围内实施身份验证 这意味着
  • 如何将元素的每个单词包装在span标签中?

    div date contents filter function return this nodeType 1 wrap span span 我是新手 认为代码可以解决问题 但它将所有内容都包含在 span 像这样 div class d
  • jQuery 日期选择器 - 时区问题

    我们在网站上使用 jQuery 日期选择器来选择预订的日期和时间 日历当前设置为太平洋标准时间 当用户尝试从其他时区访问时 这会导致错误 我们是否应该将服务器设置为 UTC 并让应用程序根据用户的 IP 地址自动选择用户的时区 我很好奇我们
  • 如何处理 d3 中 Beeswarm 图中的碰撞?

    我一直在玩这个例子here https gf neocities org co2bs co2bee html一会儿 我想做的是突出显示图中的单个节点 圆圈 通过使用边框使其变大 稍后我也想在其中添加文本或字母 目前 我已经圈了Bhutan图
  • 通过搜索查找下一个文本并突出显示不起作用

    当在搜索框中搜索任何文本时 它可以找到并突出显示正确的文本 但是当搜索下一个 新文本时 它无法找到下一个 新文本 再次搜索时它不起作用 我无法找到问题 这JS below JS button search click function va
  • Google 文档 - 以编程方式将鼠标点击发送到大纲窗格中的项目

    在 Google 文档中 您可以打开大纲窗格并查看文档中的所有标题 您也可以单击标题 视图将滚动到标题 我的问题是如何使用 Chrome 扩展中的 JS 以编程方式模拟鼠标单击 以将视图滚动到所需的标题 我尝试了以下代码 但没有任何反应 u
  • 使用什么事件来在选择文本框中的值时显示警报消息

    我正在使用 jquery 的自动完成 api 来从数据库中获取名称 但是我想在从显示的文本框中选择名称时显示一条警报消息 我将显示一个图像以便更好地理解 当我输入 S 时 它将显示所有包含 S 的记录 所以问题是 如果我选择例如 Spars
  • Angular - Safari 无法正确显示 DOM

    我是 Angular 的新手 使用 Angular 4 我尝试通过在关联的组件类文件中设置属性来更新特定元素 但是 除非我尝试强制重新绘制网页 通过调整窗口大小等 否则页面不会更新 我打开检查器 看到 DOM 已更改 但显示与元素检查器中的
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • JQuery 可排序嵌套可排序 div

    这个问题与这个有关Nest jQuery UI 可排序 https stackoverflow com questions 19129476 nest jquery ui sortables 但我无法解决我的问题 问题是 我有一个包含项目的
  • 如何在WebBrowser控件中注入Javascript?

    我试过这个 string newScript textBox1 Text HtmlElement head browserCtrl Document GetElementsByTagName head 0 HtmlElement scrip
  • 如何使用 jQuery UI Sortable 正确相交?

    这是我对 jQuery UI Sortable 进行动画处理的尝试 https codepen io anon pen YdMOXE https codepen io anon pen YdMOXE var startIndex chang
  • Jquery获取每个div的子子div并将信息抓取到数组中

    我有一些看起来像这样的 html div div class sub main div div
  • 替换打字稿中字符串中字符的所有实例?

    我正在尝试用 x 字符替换电子邮件中的所有句号 例如 电子邮件受保护 cdn cgi l email protection 将变为 myxemail emailxcom 电子邮件设置为字符串 我的问题是它不只是替换句号 而是替换每个字符 所
  • Skrollr 添加空白

    我已经尝试了一切 我在谷歌上阅读了 4 5 页试图找到适合我的修复程序 已经筋疲力尽了 即使我使用 skrollr 示例 我的问题仍然存在 不是说他们做错了什么 我知道我只是没有正确理解它 因此 我上传了一个演示 仅在移动设备上展示这个尴尬
  • 如何在 WebView 中添加 JavaScript 函数并稍后在提交 reCAPTCHA 时从 HTML 调用它

    我在 WebView 中添加一个 JavaScript 函数 如下所示 Kotlin val webView findViewById R id webview as WebView webView getSettings setJavaS
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho
  • 如何用时刻找到与给定时间最接近的时间?

    所以我有一个简单的代码 一个工作代码 它使用 moment 获取最接近给定时间的时间 Current time in millis const now moment 10 16 HH mm format x List of times co
  • 如何在 ionic2 中 pop() 之后重新加载 ion-page

    我有2页Page1 and Page2 我用过this nav pop 在Page2中 它将弹出Page2 Page1将启用 但我想刷新Page1 先感谢您 您可以将父页面与导航推送一起传递 这样您就可以将父页面作为 navParamter

随机推荐

  • 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如果要在一个简短的函数