将 JavaScript 日期格式化为 yyyy-mm-dd

新手上路,请多包涵

我有一个格式为 Sun May 11,2014 的日期。如何使用 JavaScript 将其转换为 2014-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 。我怎样才能解决这个问题?

原文由 user3625547 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 750
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/

原文由 user3470953 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

 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]

原文由 Darth Egregious 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题