问题
I am working with dates in an RSS feed, but am finding differing results when using the code below in IE, Chrome and Firefox:
new Date('2001-01-01T12:00:00Z')
Firefox is happy with that, but Chrome and IE return Invalid Date.
I thought I'd try replacing the T and Z as follows:
new Date('2001-01-01 12:00:00')
This time Chrome is happy with that, but Firefox and IE return Invalid Date.
Any ideas what I should do to get a date object in all browsers with this format?!
Many thanks, Tim
回答1:
This works in all browsers on my box - try it in the console:
alert(new Date('2001/01/31 12:00:00'))
so
new Date('2001-01-01T12:00:00Z'.replace(/\-/g,'\/').replace(/[T|Z]/g,' '))
IE8, FF3.6, Safari4, Chrome
回答2:
You could also try using Date.js - an open source javascript date manipulation library.
回答3:
Can you try:
new Date(2001,0,1,12,0,0)
This means:
new Date(year,month,day,hour,minutes,seconds)
回答4:
This works on all of the major 5 browsers and causes all browsers to recognize the time as GMT/UTC rather than local time (the Z suffix means the time is UTC):
new Date('2001-01-01T12:00:00Z'.replace(/\-/g,'\/').replace(/T/,' ').replace(/Z/,' -0'))
I thank mplungjan for his answer.
来源:https://stackoverflow.com/questions/3566125/problem-with-date-formats-in-javascript-with-different-browsers