将日期字符串转换为Firefox中的Date对象时出错[复制]

问题描述 投票:9回答:5

这个问题在这里已有答案:

我正在将一个简单的日期String转换为Date对象。以下代码适用于除Firefox以外的所有浏览器。

var dateString = "02-24-2014 09:22:21 AM";

var dateObject = new Date(dateString);

console.log(dateObject.toDateString());

Firefox中的Firebug控制台说Invalid Date。我在这做错了什么?

我也尝试用qazxsw poi替换qazxsw poi,但它没有帮助。

是否可以在不使用任何库的情况下执行此操作?

javascript
5个回答
54
投票

看起来Firefox不喜欢-中的\

使用正则表达式将所有出现的-替换为dateString,然后将该字符串转换为-对象。

/

4
投票

尝试:Date

dd-mm-yyyy不是EcmaScript中的标准日期格式。有些浏览器实现它,有些则没有。

您尝试用反斜杠替换连字符,但您需要用斜杠替换它们。

如果带有连字符的日期来自您的服务器或某些东西,您可以使用var str = '02-24-2014 09:22:21 AM'; str = str.replace(/-/g,'/'); // replaces all occurances of "-" with "/" var dateObject = new Date(str); alert(dateObject.toDateString());方法和正则表达式替换它们:

var dateString = "02/24/2014 09:22:21 AM"

4
投票

请试试这个:

var dateString =“02-24-2014 09:22:21 AM”;

var dateObject = new Date();

dateObject.toDateString(dateString);


1
投票

我建议你使用,

replace

moment.js jQuery api。它适用于所有浏览器。有很多方法可以完成同样的任务。但最简单的方法是添加moment.js。

var dateString = "02-24-2014 09:22:21 AM";
dateString = dateString.replace(/-/g, '/');

http://momentjs.com/


0
投票

我建议你使用ISO8601( var dateString=moment('date as string').toDate(); )格式:YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS。

所以:http://jsfiddle.net/cTcNK/5/

如果字符串是固定的...然后拆分它并使用Date构造函数

http://en.wikipedia.org/wiki/ISO_8601
© www.soinside.com 2019 - 2024. All rights reserved.