IE中的Javascript日期解析问题
我在JavaScript中有一个字符串IE中的Javascript日期解析问题,javascript,jquery,regex,internet-explorer,firefox,Javascript,Jquery,Regex,Internet Explorer,Firefox,我在JavaScript中有一个字符串2015-07-22 00:00:00.0。我需要将此转换为mm/dd/yy格式 我试着用vard=newdate(from_Date)解析,可在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
2015-07-22 00:00:00.0
。我需要将此转换为mm/dd/yy
格式
我试着用vard=newdate(from_Date)解析
,可在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)
然后我尝试使用regex模式替换,但它仍然只在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)
请提供一些说明。如果日期始终是这种格式,您可以将其子串出来,并使用使其工作
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
无论何时使用Javascript处理日期或时间,我都建议您使用 在您的情况下,应该执行以下操作来解析字符串:
var x = moment(st, "YYYY-MM-DD");
然后,对于输出:
console.log( x.format("MM/DD/YYYY") );
这对你来说应该很好
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());
@JoshStevens,因为如果您无法控制字符串的格式,并且无法识别该字符串,那么解析该字符串的值并显式地将其设置为正确的参数是最好的方法。@JoshStevens哇,不必粗鲁。。。原因是唯一被接受的标准日期字符串是这些格式中的一种:它们都不是。当然这很简单,但是您的答案在技术上不可行,因为它将一种不标准的格式传递给构造函数。通过分解,我们避免了任何兼容性问题。编辑后,他粗鲁地删除了他的答案。。。一些人感谢大家关注这一点,当我尝试使用这一代码时,我得到了日期为Fri Jan 02 201 00:00:00 GMT+0100(西欧标准时间),但如果你看到我的日期字符串,它是完全不同的日期@sathishkumar,你能在你的主要问题中进行编辑吗?包括代码,完成后在此处注释,我将查看it@unstableeagle我没有添加任何代码,只是尝试了您的代码并打印了输出,结果日期不同,再次感谢第一行在Firefox中返回无效日期。是的,很抱歉我忘记添加replace()方法