Я проверил это в нескольких браузерах, и да, Safari возвращает invalid date
.Кстати, вам не нужно использовать Date.parse
здесь, просто new Date([datestring])
тоже будет работать.Safari, очевидно, требует большего форматирования строки даты, которую вы предоставляете.Если вы замените «-» на «/», удалите букву «Т» и все после точки (.593Z), это даст вам правильную дату.Этот код протестирован и работает в Safari
var datestr = '2011-06-21T14:27:28.593Z'.split(/[-T.]/);
var safdat = new Date( datestr.slice(0,3).join('/')+' '+datestr[3] );
или с использованием String.replace(...)
:
new Date("2016-02-17T00:05:01+0000".replace(/-/g,'/').replace('T',' ').replace(/(\..*|\+.*/,""))