web-dev-qa-db-ja.com

ISO 8601のJavaScriptでミリ秒なしでZを使用して日付を出力する方法

JavaScriptで日付をISO 8601文字列としてシリアル化する標準的な方法を次に示します。

var now = new Date();
console.log( now.toISOString() );
// outputs '2015-12-02T21:45:22.279Z'

同じ出力が必要ですが、ミリ秒は必要ありません。 2015-12-02T21:45:22Zを出力するにはどうすればよいですか?

41
bessarabov

簡単な方法:

console.log( now.toISOString().split('.')[0]+"Z" );
82

これが解決策です。

var now = new Date(); 
var str = now.toISOString();
var res = str.replace(/\.[0-9]{3}/, '');
alert(res);

を見つけます。 (ドット)および3文字を削除します。

http://jsfiddle.net/boglab/wzudeyxL/7/

9
STORM

スライスを使用して不要な部分を削除します

var now = new Date();
alert( now.toISOString().slice(0,-5)+"Z");
7
sdespont

split()shift() の組み合わせを使用して、 ISO 8601 からミリ秒を削除できます。文字列:

let date = new Date().toISOString().split('.').shift() + 'Z';

console.log(date);
5
Grant Miller

またはおそらくこれで上書きしますか? (これは here からの修正されたポリフィルです)

function pad(number) {
  if (number < 10) {
    return '0' + number;
  }
  return number;
}

Date.prototype.toISOString = function() {
  return this.getUTCFullYear() +
    '-' + pad(this.getUTCMonth() + 1) +
    '-' + pad(this.getUTCDate()) +
    'T' + pad(this.getUTCHours()) +
    ':' + pad(this.getUTCMinutes()) +
    ':' + pad(this.getUTCSeconds()) +
    'Z';
};
4
Aram