将 JavaScript 日期的格式设置为 yyyy-mm-dd

我有一个格式的日期。如何将其转换为使用JavaScript?Sun May 11,20142014-05-11

function taskDate(dateMilli) {
    var d = (new Date(dateMilli) + '').split(' ');
    d[2] = d[2] + ',';

    return [d[0], d[1], d[2], d[3]].join(' ');
}

var datemilli = Date.parse('Sun May 11,2014');
console.log(taskDate(datemilli));

上面的代码给了我相同的日期格式,.我该如何解决这个问题?sun may 11,2014


答案 1

只需利用将您的日期转换为ISO 8601格式的内置方法:toISOString

let yourDate = new Date()
yourDate.toISOString().split('T')[0]

其中 yourDate 是您的日期对象。

编辑@exbuddha写这个来处理评论中的时区:

const offset = yourDate.getTimezoneOffset()
yourDate = new Date(yourDate.getTime() - (offset*60*1000))
return yourDate.toISOString().split('T')[0]

答案 2

您可以执行以下操作:

function formatDate(date) {
    var d = new Date(date),
        month = '' + (d.getMonth() + 1),
        day = '' + d.getDate(),
        year = d.getFullYear();

    if (month.length < 2) 
        month = '0' + month;
    if (day.length < 2) 
        day = '0' + day;

    return [year, month, day].join('-');
}
 
console.log(formatDate('Sun May 11,2014'));

用法示例:

console.log(formatDate('Sun May 11,2014'));

输出:

2014-05-11

JSFiddle 上的演示:http://jsfiddle.net/abdulrauf6182012/2Frm3/