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

时间:2012-07-21 11:41:07

标签: javascript jquery

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

3 个答案:

答案 0 :(得分:236)

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

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

答案 1 :(得分:132)

所有其他答案并没有完全解决问题。他们打印格式为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;
}

答案 2 :(得分:30)

将您的字符串传递到Date对象

var d = new Date("2010-10-30T00:00:00+05:30");

从这里您可以使用以下方法提取所需内容:

d.getMonth()+1  // 10
d.getDate()     // 30
d.getFullYear() // 2010

请注意,getMonth()会根据(0-11)返回月份数,因此需要+1

您可以在此处找到其他 getters 的列表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date


另一种方法,使用.slice().split()

var d = "2010-10-30T00:00:00+05:30".slice(0, 10).split('-');   
d[1] +'/'+ d[2] +'/'+ d[0]; // 10/30/2010