2

I have this script I'm using for working with dates:

time = "Mon May 20 13:19:13 +0000 2013"; /// sample value
var date = new Date(Date.parse(time));
var diff = (((new Date()).getTime() - date.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);

It works fine on Chrome and Firefox, but it's not ok on Internet Explorer (I've checked with IE10). Any ideeas how can I make it work?

(The time string I'm getting it's from a twitter feed).

Later edit: example http://jsfiddle.net/BUv5v/3/

Spudley
  • 166,037
  • 39
  • 233
  • 307
gabitzish
  • 9,535
  • 7
  • 44
  • 65

1 Answers1

1

Date.parse() will not parse a date in this format Tue Dec 05 2006 16:47:20 GMT-0500 in IE.

A workaround is to use this function to parse that format in both browsers:

function parseDate(str) {
    var v = str.split(' ');
    return new Date(Date.parse(v[1] + " " + v[2] + ", " + v[5] + " " + v[3] + " UTC"));
}

Thus, the ending code would be:

time = "Mon May 20 13:19:13 +0000 2013"; /// sample value
var date = parseDate(time);                     // <---------------- changed here
var diff = (((new Date()).getTime() - date.getTime()) / 1000);
var day_diff = Math.floor(diff / 86400);

Testing fiddle (tested in Chrome 27, Firefox 13 and IE 9): http://jsfiddle.net/R3Ez9/

Community
  • 1
  • 1
acdcjunior
  • 132,397
  • 37
  • 331
  • 304