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


当前回答

Day.js怎么样?

它只有2KB,你还可以使用dayjs().format('YYYY-MM-DD')。

https://github.com/iamkun/dayjs

其他回答

要获得本地日期,YYYYMMDD格式,我使用:

var todayDate = (new Date()).toLocaleString('en-GB').slice(0,10).split("\/").reverse().join("");

Moment.js可以成为你的朋友

var date = new Date();
var formattedDate = moment(date).format('YYYYMMDD');

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

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);

原生Javascript:

new Date().toLocaleString('zu-ZA').slice(0,10).replace(/-/g,'');
[day,,month,,year]= Intl.DateTimeFormat(undefined, { year: 'numeric', month: '2-digit', day: '2-digit' }).formatToParts(new Date()),year.value+month.value+day.value

or

new Date().toJSON().slice(0,10).replace(/\/|-/g,'')