关于jquery:在javascript中将日期格式化为mm/dd/yyyy

Format date to MM/dd/yyyy in JavaScript

本问题已经有最佳答案,请猛点这里访问。

我有这样的日期格式'2010-10-11T00:00:00+05:30'。我必须使用javascript或jquery将格式设置为MM/dd/yyyy。有人帮我做同样的事。


尝试这样做;记住,javascript月是0索引的,而天是1索引的。

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


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

即,mm/dd为3/31,mm/dd为3/31。

我创建了一个简单的函数来实现这一点。请注意,相同的填充不仅应用于月份,而且也应用于月份的日期,这实际上使这个月/日/年:

1
2
3
4
5
6
7
8
9
10
11
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除外。

1
2
3
4
5
6
7
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;
}


将字符串传递到Date对象中:

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

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

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

注意,getMonth()返回基于零的月份数(0-11),因此需要+1

您可以在这里找到其他getter的列表:https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/date

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

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