我试图使用JS将日期对象转换为YYYYMMDD格式的字符串。有没有比连接Date.getYear(), Date.getMonth()和Date.getDay()更简单的方法?
当前回答
当地时间:
var date = new Date();
date = date.toJSON().slice(0, 10);
UTC时间:
var date = new Date().toISOString();
date = date.substring(0, 10);
在我写这篇文章的时候,日期将在今天2020-06-15打印出来。
toISOString()方法返回ISO标准的日期,YYYY-MM-DDTHH:mm:ss.sssZ
代码采用YYYY-MM-DD格式所需的前10个字符。
如果你想要没有'-'的格式,请使用:
var date = new Date();
date = date.toJSON().slice(0, 10).split`-`.join``;
在.join ' '中,你可以添加空格、点或任何你喜欢的东西。
其他回答
const date = new Date()
console.log(date.toISOString().split('T')[0]) // 2022-12-27
原生Javascript:
new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');
当地时间:
var date = new Date();
date = date.toJSON().slice(0, 10);
UTC时间:
var date = new Date().toISOString();
date = date.substring(0, 10);
在我写这篇文章的时候,日期将在今天2020-06-15打印出来。
toISOString()方法返回ISO标准的日期,YYYY-MM-DDTHH:mm:ss.sssZ
代码采用YYYY-MM-DD格式所需的前10个字符。
如果你想要没有'-'的格式,请使用:
var date = new Date();
date = date.toJSON().slice(0, 10).split`-`.join``;
在.join ' '中,你可以添加空格、点或任何你喜欢的东西。
我不喜欢增加原型。另一种选择是:
var rightNow = new Date(); var res = rightNow.toISOString().slice(0,10).replace(/-/g,""); <!——下一行仅用于代码段输出——> document.body.innerHTML += res;
这里有一个简洁的小函数,易于阅读,并避免了局部变量,这在JavaScript中可能是时间消耗。我不使用原型来修改标准模块,因为它会污染名称空间,并可能导致代码不能执行您认为应该执行的操作。
main函数有一个愚蠢的名字,但它传达了思想。
function dateToYYYYMMDDhhmmss(date) {
function pad(num) {
num = num + '';
return num.length < 2 ? '0' + num : num;
}
return date.getFullYear() + '/' +
pad(date.getMonth() + 1) + '/' +
pad(date.getDate()) + ' ' +
pad(date.getHours()) + ':' +
pad(date.getMinutes()) + ':' +
pad(date.getSeconds());
}