JavaScript での ISO 8601 形式の文字列の出力
Date オブジェクトがあり、そのタイトルとして ISO 8601 形式の文字列をレンダリングしたいとします。次の例に見られます:
<abbr title="2010-04-02T14:12:07">A couple days ago</abbr>
getUTC*() メソッドを使用して ISO 日付文字列を作成しようとしましたが、成功しませんでした。
解決策
JavaScript には、ISO 8601 形式で日付と時刻を返す toISOString() という組み込み関数が用意されています。次のように使用できます:
var date = new Date(); date.toISOString(); // "2011-12-19T15:28:46.493Z"
何らかの理由でブラウザが toISOString() をサポートしていない場合は、次のポリフィルを使用できます:
if (!Date.prototype.toISOString) { (function() { function pad(number) { var 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'; }; }()); }
ポリフィルを配置した状態でtoISOString() 関数を使用して、ISO 8601 形式の文字列を生成できます。
以上がISO 8601 形式の文字列を JavaScript で出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。