如何在没有毫秒和Z的情况下在ISO 8601中的javascript中输出日期

问题描述 投票:36回答:5

以下是在JavaScript中将日期序列化为ISO 8601字符串的标准方法:

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

我需要相同的输出,但没有毫秒。我怎样才能输出2015-12-02T21:45:22Z

javascript date iso8601
5个回答
80
投票

简单方法:

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

9
投票

这是解决方案:

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

找到了。 (点)并删除3个字符。

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


7
投票

使用切片删除不需要的部分

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

5
投票

您可以使用split()shift()的组合来从ISO 8601字符串中删除毫秒:

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

console.log(date);

4
投票

或者可能用这个覆盖它? (这是来自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';
};
© www.soinside.com 2019 - 2024. All rights reserved.