以下是在JavaScript中将日期序列化为ISO 8601字符串的标准方法:
var now = new Date();
console.log( now.toISOString() );
// outputs '2015-12-02T21:45:22.279Z'
我需要相同的输出,但没有毫秒。如何输出2015-12-02T21:45:22Z
?
答案 0 :(得分:75)
简单方法:
console.log( now.toISOString().split('.')[0]+"Z" );
答案 1 :(得分:7)
使用切片删除不需要的部分
var now = new Date();
alert( now.toISOString().slice(0,-5)+"Z");
答案 2 :(得分:7)
这是解决方案:
var now = new Date();
var str = now.toISOString();
var res = str.replace(/\.[0-9]{3}/, '');
alert(res);
找到了。 (点)并删除3个字符。
答案 3 :(得分:5)
您可以结合使用split()
和shift()
从ISO 8601字符串中除去毫秒:
let date = new Date().toISOString().split('.').shift() + 'Z';
console.log(date);
答案 4 :(得分:2)
或者可能用这个覆盖它? (这是来自here)
的修改后的polyfillfunction 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';
};
答案 5 :(得分:0)
类似于@STORM的答案:
const date = new Date();
console.log(date.toISOString());
console.log(date.toISOString().replace(/[.]\d+/, ''));