在 JavaScript 中将日期格式化为 MM/dd/yyyy

2022-08-30 01:44:48

我有一个这样的日期格式。我必须格式化为使用JavaScript或jQuery。任何人都可以帮我做同样的事情。'2010-10-11T00:00:00+05:30'MM/dd/yyyy


答案 1

试试这个;请记住,JavaScript 月份是 0 索引的,而天是 1 索引的。

var date = new Date('2010-10-11T00:00:00+05:30');
    alert(((date.getMonth() > 8) ? (date.getMonth() + 1) : ('0' + (date.getMonth() + 1))) + '/' + ((date.getDate() > 9) ? date.getDate() : ('0' + date.getDate())) + '/' + date.getFullYear());

答案 2

所有其他答案都不能完全解决问题。他们打印格式为 mm/dd/yyyy 的日期,但问题是关于 MM/DD/yyyy 的。注意到细微的区别了吗?MM 表示如果月份是一位数,则前导零必须填充月份,因此它始终是两位数。

即,当 mm/dd 为 3/31 时,MM/dd 将为 03/31。

我创建了一个简单的函数来实现这一点。请注意,相同的填充不仅应用于月份,还应用于月份中的某一天,这实际上使以下 MM/DD/yyyy:

function getFormattedDate(date) {
  var year = date.getFullYear();

  var month = (1 + date.getMonth()).toString();
  month = month.length > 1 ? month : '0' + month;

  var day = date.getDate().toString();
  day = day.length > 1 ? day : '0' + day;
  
  return month + '/' + day + '/' + year;
}

使用String.padStart()更新ES2017,除IE之外的所有主流浏览器都支持。

function getFormattedDate(date) {
    let year = date.getFullYear();
    let month = (1 + date.getMonth()).toString().padStart(2, '0');
    let day = date.getDate().toString().padStart(2, '0');
  
    return month + '/' + day + '/' + year;
}