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


当前回答

这个帖子中最受欢迎的答案的简化版本https://stackoverflow.com/a/3067896/5437379:

function toYYYYMMDD(d) {
    var yyyy = d.getFullYear().toString();
    var mm = (d.getMonth() + 101).toString().slice(-2);
    var dd = (d.getDate() + 100).toString().slice(-2);
    return yyyy + mm + dd;
}

其他回答

Dateformat是一个非常常用的包。

使用方法:

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

以格式

然后格式化你的东西:

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

这个家伙这里=> http://blog.stevenlevithan.com/archives/date-time-format写了一个格式()函数Javascript的日期对象,所以它可以使用熟悉的文字格式。

如果你需要在应用程序的Javascript中使用完整的日期格式,请使用它。否则,如果你想做的是一次性的,那么连接getYear(), getMonth(), getDay()可能是最简单的。

这段代码修复了Pierre Guilbert的答案:

(10000年后依然有效)

YYYYMMDD=new Date().toISOString().slice(0,new Date().toISOString().indexOf("T")).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 ' '中,你可以添加空格、点或任何你喜欢的东西。

原生Javascript:

new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');