Date issue in Firefox

无人久伴 提交于 2019-12-19 03:32:20

问题


I want to parse date in my page to Javascript's Date.

So I have this in my page

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

And I have Javascript code that parses this value to date

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

And here is what I get in different browsers

IE:

Sat Jan 7 13:04:00 UTC+0400 2012

Chrome:

Sat Jan 07 2012 13:04:00 GMT +0400 (Caucasus Standard Time)

Firefox:

Invalid Date

Why Firefox doesn't recognize my date? What I must change to make it work with all major browsers?

Here is jsfiddle http://jsfiddle.net/mgER5/1/


回答1:


try this:

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



回答2:


As explained in the documentation the string you are passing to the constructor of the Date object should be:

String value representing a date. The string should be in a format recognized by the parse method (IETF-compliant RFC 1123 timestamps).

Basically it should represent an RFC822 or ISO 8601 date.




回答3:


What I must change to make it work with all major browsers?

Write it in milliseconds.




回答4:


If you really want full cross-browser support for any date format, you should take a look at moment.js. It allows you to be explicit about the input format. For example:

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


来源:https://stackoverflow.com/questions/8831338/date-issue-in-firefox

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!