首页 >web前端 >js教程 >如何在 JavaScript 中生成 ISO 8601 格式的字符串?

如何在 JavaScript 中生成 ISO 8601 格式的字符串?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-29 09:55:10696浏览

How to Generate ISO 8601 Formatted Strings in JavaScript?

在 JavaScript 中输出 ISO 8601 格式字符串

要渲染 ISO 8601 格式字符串的“标题”部分,请考虑使用以下方法:

使用 toISOString() 方法

JavaScript 的 Date 对象提供了toISOString() 方法,直接返回 ISO 8601 格式的字符串。

const date = new Date();
const isoString = date.toISOString();

自定义格式函数

如果 toISOString() 不可用,可以实现自定义函数生成 ISO 8601 个字符串:

function isoDate(msSinceEpoch) {
  const d = new Date(msSinceEpoch);
  return (
    d.getUTCFullYear() +
    '-' +
    (d.getUTCMonth() + 1).toString().padStart(2, 0) +
    '-' +
    d.getUTCDate().toString().padStart(2, 0) +
    'T' +
    d.getUTCHours().toString().padStart(2, 0) +
    ':' +
    d.getUTCMinutes().toString().padStart(2, 0) +
    ':' +
    d.getUTCSeconds().toString().padStart(2, 0)
  );
}

console.log(isoDate(Date.now()));

Polyfill toISOString()

对于不支持 toISOString() 的浏览器,您可以使用以下填充:

if (!Date.prototype.toISOString) {
  (function() {
    function pad(number) {
      const r = String(number);
      if (r.length === 1) {
        r = '0' + r;
      }
      return r;
    }

    Date.prototype.toISOString = function() {
      return (
        this.getUTCFullYear() +
        '-' +
        pad(this.getUTCMonth() + 1) +
        '-' +
        pad(this.getUTCDate()) +
        'T' +
        pad(this.getUTCHours()) +
        ':' +
        pad(this.getUTCMinutes()) +
        ':' +
        pad(this.getUTCSeconds()) +
        '.' +
        String((this.getUTCMilliseconds() / 1000).toFixed(3)).slice(2, 5) +
        'Z'
      );
    };
  })();
}

以上是如何在 JavaScript 中生成 ISO 8601 格式的字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

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