首页 >web前端 >js教程 >如何使用时区偏移格式化 ISO 8601 中的 JavaScript 日期?

如何使用时区偏移格式化 ISO 8601 中的 JavaScript 日期?

Linda Hamilton
Linda Hamilton原创
2024-11-28 12:28:11366浏览

How to Format a JavaScript Date in ISO 8601 with Timezone Offset?

ISO 8601 在 JavaScript 中格式化带有时区偏移的日期

本文解决了如何在 ISO 中格式化 JS 日期的常见问题8601 格式,带有相对 UTC 的偏移量。首先讨论根据 W3C 建议将 URL 格式化为正确格式的目标。

该解决方案涉及一系列步骤:

  1. 获取本地time: 新的 Date() 函数用于获取所需格式的本地时间(例如, "yyyy-MM-ddThh:mm:ss")。
  2. 计算 UTC 时间偏移: 调用 getTimezoneOffset() 方法来计算本地时间与 UTC 之间的差异。然后将结果除以 60,以小时为单位表示偏移量。
  3. 构造 URL: 将本地时间和计算出的 UTC 偏移量组合起来形成持续时间字符串,该字符串表示所需的时间带时区偏移量的 ISO 8601 格式日期(例如, "2013-07-02T09:00:00-7:00")。

但是,出现了如何处理 getTimezoneOffset() 的负值的问题。提供的答案利用辅助函数来解决此问题:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),
      dif = tzo >= 0 ? '+' : '-',
      pad = function(num) {
          return (num < 10 ? '0' : '') + num;
      };

  return date.getFullYear() +
      '-' + pad(date.getMonth() + 1) +
      '-' + pad(date.getDate()) +
      'T' + pad(date.getHours()) +
      ':' + pad(date.getMinutes()) +
      ':' + pad(date.getSeconds()) +
      dif + pad(Math.floor(Math.abs(tzo) / 60)) +
      ':' + pad(Math.abs(tzo) % 60);
}

此辅助函数将日期作为参数,并返回格式正确的 ISO 8601 字符串,包括时区偏移量。

以上是如何使用时区偏移格式化 ISO 8601 中的 JavaScript 日期?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn