Нам нужно использовать JavaScript в браузере для чтения и анализа файлов календаря (.ics) (также называемых форматами iCal). Я написал пользовательскую функцию для чтения этих значений, а затем использовал функцию JavaScript Date () для создания объекта данных.
Есть ли более простой и лучший способ сделать это? Пожалуйста, посмотрите на мою функцию (ниже), ваши комментарии будут приветствоваться.
Типичное значение даты из файла .ics выглядит следующим образом:
DTSTART: 20110914T184000Z
Нужно разбить его на двоеточие, так:
var strData = 'DTSTART:20110914T184000Z'
var x = strData.indexOf(":");
var strVal = strData.slice(x + 1 );
Затем вызовите функцию, которая возвращает объект даты:
var dateObj = calenDate(strVal);
// результирующее значение dateObj: пт 14 октября 2011 18:40:00 GMT-0400 (восточное дневное время)
Вот функция, которая анализирует дату.
function calenDate(icalStr) {
// icalStr = '20110914T184000Z'
var strYear = icalStr.substr(0,4);
var strMonth = icalStr.substr(4,2);
var strDay = icalStr.substr(6,2);
var strHour = icalStr.substr(9,2);
var strMin = icalStr.substr(11,2);
var strSec = icalStr.substr(13,2);
var oDate = new Date(strYear,strMonth, strDay, strHour, strMin, strSec)
return oDate;
}
Я думаю, что-то не так, потому что месяц ошибается.