Firefox中的日期问题

时间:2012-01-12 07:08:58

标签: javascript firefox cross-browser

我想在我的页面中将日期解析为Javascript的Date

所以我在我的页面中有这个

<span>01-07-2012 01:04 PM</span>

我有Javascript代码将此值解析为日期

var tagText = $(this).html();
var givenDate = new Date(tagText);
alert(givenDate);

以下是我在不同浏览器中获得的内容

IE:

  

星期六1月7日13:04:00 UTC + 0400 2012

铬:

  

Sat Jan 07 2012 13:04:00 GMT +0400(高加索标准时间)

火狐:

  

无效日期

为什么Firefox无法识别我的约会?我必须改变什么才能使它适用于所有主流浏览器?

这是jsfiddle http://jsfiddle.net/mgER5/1/

4 个答案:

答案 0 :(得分:8)

试试这个:

var tagText = $(this).html();
tagText = tagText.replace(/-/g, '/');
var givenDate = new Date(tagText);
alert(givenDate);

答案 1 :(得分:2)

documentation中所述,您传递给Date对象的构造函数的字符串应为:

  

表示日期的字符串值。字符串应采用格式   由parse方法(IETF-compliant RFC 1123 timestamps)识别。

基本上它应代表RFC822或ISO 8601日期。

答案 2 :(得分:0)

  

我必须更改以使其适用于所有主流浏览器吗?

以毫秒为单位写。

答案 3 :(得分:0)

如果您真的想要任何日期格式的完全跨浏览器支持,您应该看一下moment.js。它允许您明确输入格式。例如:

var m = moment('01-07-2012 01:04 PM', 'DD-MM-YYYY  hh:mm a');