我试图使用JS将日期对象转换为YYYYMMDD格式的字符串。有没有比连接Date.getYear(), Date.getMonth()和Date.getDay()更简单的方法?


当前回答

你可以使用toISOString函数:

var today = new Date();
today.toISOString().substring(0, 10);

它会给你一个“yyyy-mm-dd”格式。

其他回答

当地时间:

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 ' '中,你可以添加空格、点或任何你喜欢的东西。

回答另一个简单性和可读性的问题。 此外,不鼓励使用新方法编辑现有的预定义类成员:

function getDateInYYYYMMDD() {
    let currentDate = new Date();

    // year
    let yyyy = '' + currentDate.getFullYear();

    // month
    let mm = ('0' + (currentDate.getMonth() + 1));  // prepend 0 // +1 is because Jan is 0
    mm = mm.substr(mm.length - 2);                  // take last 2 chars

    // day
    let dd = ('0' + currentDate.getDate());         // prepend 0
    dd = dd.substr(dd.length - 2);                  // take last 2 chars

    return yyyy + "" + mm + "" + dd;
}

var currentDateYYYYMMDD = getDateInYYYYMMDD();
console.log('currentDateYYYYMMDD: ' + currentDateYYYYMMDD);

您可以简单地使用这一行代码来获取日期

var date = new Date().getFullYear() + "-" + (parseInt(new Date().getMonth()) + 1) + "-" + new Date().getDate();

这是一行代码,您可以使用它来创建今天日期的YYYY-MM-DD字符串。

var d = new Date().toISOString().slice(0,10);

Dateformat是一个非常常用的包。

使用方法:

从NPM下载并安装dateformat。在你的模块中需要它:

以格式

然后格式化你的东西:

const myYYYYmmddDate = dateformat(new Date(), 'yyyy-mm-dd');