Ответ 1
Вот исправление для Firefox и IE/Safari (с помощью JavaScript: какие браузеры поддерживают разбор строки даты ISO-8601 с помощью Date.parse ):
var noOffset = function(s) {
var day= s.slice(0,-5).split(/\D/).map(function(itm){
return parseInt(itm, 10) || 0;
});
day[1]-= 1;
day= new Date(Date.UTC.apply(Date, day));
var offsetString = s.slice(-5)
var offset = parseInt(offsetString,10)/100;
if (offsetString.slice(0,1)=="+") offset*=-1;
day.setHours(day.getHours()+offset);
return day.getTime();
}
От MDN
Примечание JavaScript 1.8.5
Теперь можно также проанализировать подмножество строк даты в формате ISO 8601.
В качестве альтернативы строка даты/времени может быть в формате ISO 8601. Начиная с JavaScript 1.8.5/Firefox 4, подмножество ISO 8601 поддерживается. Например, "2011-10-10" (только дата) или "2011-10-10T14: 48: 00 (дата и время) могут быть переданы и проанализированы. Временные интервалы в датах ISO еще не поддерживаются, например," 2011- 10-10T14: 48: 00 + 0200 "(с часовым поясом) пока не дает ожидаемого результата.