jQuery tableorter локаль названия месяца - PullRequest
1 голос
/ 06 августа 2009

Использование плагина jQuery tableorter . Интересно, как я могу заставить его работать с датами в полном формате:

"21 января 2009 г., 16:00"

Проблема в том, что когда эта дата (строка) локализована в текущей локали пользователя

"Поколение 21, 2009 16:00"

Должен ли я написать собственный сортировщик для каждой локали?

Спасибо.

<table id="orders" class="sortable">
    <thead>
        <tr>
            <th>Da</th>
            <th>Al</th>
            <th class="right">Camere</th>
            <th class="right">Spesa dell'ordine</th>
        </tr>
    </thead>
    <tr>
        <td>gen 21, 2009 22:00</td>
        <td>gen 22, 2009 22:00</td>
        <td class="right">1</td>
        <td class="right">30.00€</td>
    </tr>

1 Ответ

1 голос
/ 06 августа 2009

Что ж, плагин Tablesorter обнаружит, что «gen 21, 2009» - это столбец даты. Затем он передаст его конструктору javascript Date для его анализа; это может быть ошибочным шагом (я не знаю если конструктор принимает локализованные строки, вы можете проверить это, выполнив следующее:

new Date("gen 21, 2009 16:00").getTime();

Если он возвращает «NaN» (как это происходит на моем en-US firefox), то вам понадобится собственный анализатор. Если он возвращает 1232514000000, вам не нужно ничего делать.

Tablesorter определит столбец как "длинную дату в США", если он соответствует этому регулярному выражению:

/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/

a.k.a:

  • 3 - 10 буквенных знаков (месяц)
  • необязательный период
  • пробел
  • 1 - 2 цифры (день)
  • запятая, затем пробел
  • год с 4 цифрами или апостроф, за которым следует год с 2 цифрами
  • необязательно 24-часовое или 12-часовое время, за которым следует прописная буква AM или PM.
...