ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で ISO 8601 形式の文字列を生成するにはどうすればよいですか?

JavaScript で ISO 8601 形式の文字列を生成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-29 09:55:10694ブラウズ

How to Generate ISO 8601 Formatted Strings in JavaScript?

JavaScript での ISO 8601 形式の文字列の出力

ISO 8601 形式の文字列の「タイトル」部分をレンダリングするには、次のアプローチの利用を検討してください。

toISOString() メソッドの使用

JavaScript の日付オブジェクトは、ISO 8601 形式の文字列を直接返す toISOString() メソッドを提供します。

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 for 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。