首页 > web前端 > js教程 > 如何在 JavaScript 中生成带有时区偏移的 ISO 8601 时间戳?

如何在 JavaScript 中生成带有时区偏移的 ISO 8601 时间戳?

DDD
发布: 2024-12-18 10:45:13
原创
145 人浏览过

How to Generate ISO 8601 Timestamps with Timezone Offset in JavaScript?

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

目标: 构造一个带有 ISO 时间戳的 URL包含时区的 8601 格式offset.

方法:

  1. 使用 new Date() 获取当地时间。
  2. 使用 getTimezoneOffset( 计算与 UTC 的时区偏移量).
  3. 按照所需格式构造时间戳字符串: yyyy-MM-ddThh:mm:ss±hh:mm.

实现:

以下 JavaScript 函数构造 ISO 8601 时间戳:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),  // Negative offset means UTC is ahead of local time
      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);
}
登录后复制

例如,如果当地时间是2013/07/02 上午 9 点,时区偏移量为 -7 小时(UTC 比 UTC 早 7 小时):

var dt = new Date();
console.log(toIsoString(dt));  // Outputs: "2013-07-02T09:00:00-07:00"
登录后复制

请注意,或 - 符号表示本地时间是早于还是晚于 UTC。

以上是如何在 JavaScript 中生成带有时区偏移的 ISO 8601 时间戳?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板