2014-01-20 2 views
1

У меня есть таблица с строкой даты в заголовке. Он возвращается как часть массива, но мне нужна эта дата в массиве как Date Object, а не только строка.Преобразование String to Date Объект в массиве

Моя таблица выглядит следующим образом

DEMO

// [[20th Jan, 33], [21st Jan, 44], [22nd Jan, 5],[23rd Jan, 17]]

Я использую следующий JS, чтобы получить этот массив

var arr = $.map($('#bookedTable th:not(:first)'), function(el,i) { 
    return [[$(el).text(), $('#bookedTable td:eq('+i+')').text()]] 
}); 

console.log(arr) 

Вопрос: Как я могу вернуть даты струнные как объекты даты в моем массиве?

+1

Где год? Является ли 33 для 1933 года? 2033? 8331? –

+0

Для комплексного синтаксического анализа даты я предлагаю вам посмотреть на moment.js. Но я думаю, что вы слишком быстро попросите, вы искали «парсинг даты javascript»? –

+0

по умолчанию это может быть в этом году 2014 – Redwall

ответ

2

Вы должны побежал что-то вроде этой функции на в массиве :)

function parseThisDate(date) { 
    dateParts = date.split(" "); 

    return new Date(dateParts[2], translateMonthToNum(dateParts[1]), dateParts[0]) 
} 

function translateMonthToNum(monthName) { 
    if (monthName == 'Jan,') return 0; 
    //todo: add all months you need 
} 
+1

'' Ян, ''должен возвращать 0, поскольку месяц основан на нулевом значении. – EoiFirst

+0

@EoiFirst -yep, вы правы. спасибо за замечание – pomaxa

0

Вы всегда можете преобразовать строку в дату,

вар MyDate = новая дата все ваши даты ("2013/1/16");

Вы можете получить «2013/1/16» из массива, если месяцы в цифрах.

click here для получения дополнительной информации о объекте даты в JavaScript.

Смежные вопросы