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