我在JavaScript 2015-07-22 00:00:00.0
中有一个字符串。我需要将其转换为mm/dd/yy
格式
我尝试使用var d = new Date(from_date);
解析,该解析适用于Chrome,但不适用于IE或Firefox
然后我尝试使用正则表达式模式替换,但它仍然只适用于Chrome但不适用于IE或Firefox
var st = '2015-07-22 00:00:00.0'
var pattern = '\d{4})\-(\d{2})\-(\d{2})/'
var dt = new Date(st.replace(pattern, '$2-$3-$1'));
var output = dt.getMonth() + 1 + '/' + dt.getDate() + '/' + dt.getFullYear();
alert(output)
请点亮。
答案 0 :(得分:3)
如果日期始终采用该格式,您可以将其子串出来并使用standard date format来使其正常工作。
var r = "2015-07-22 00:00:00.0"
var date = new Date(r.substring(0, 4), //year
r.substring(5, 7), //month
r.substring(8, 10), //day
r.substring(11, 13), //hour
r.substring(14, 16), //min
r.substring(17, 19), //sec
r.substring(20)); //mili
答案 1 :(得分:2)
每当您使用Javascript对日期和时间进行任何操作时,我建议您使用momentJS
在你的情况下,你应该做这样的事情来解析字符串:
var x = moment(st, "YYYY-MM-DD");
然后输出:
console.log( x.format("MM/DD/YYYY") );
答案 2 :(得分:-1)
这应该适合你。
var date = new Date('2015-07-22 00:00:00.0'.replace(/ /g, 'T')),
monthDigits = [ '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12' ];
console.log(monthDigits[date.getMonth()] + '/' + date.getDate() + '/' + date.getFullYear());