Эффективность преобразования числовой даты в текстовую - PullRequest
0 голосов
/ 07 января 2012

У меня есть дата в формате ММ / ДД / ГГГГ.Мне нужно затем преобразовать его в, используя JavaScript.(Более точный пример: 25.05.2012 -> «25 мая 2012») Я знаю, как преобразовать даты, но по вопросу:

Есть ли более эффективный способ, будь тоиспользуя функцию javascript или что-то еще, чтобы преобразовать MM / DD / YYYY в вышеприведенный формат вместо использования оператора switch и объединения строк?

Ответы [ 3 ]

1 голос
/ 07 января 2012

Вы можете найти функции parseDate и formatDate в Datepicker из jQuery UI привлекательными, например,

var date = $.datepicker.parseDate('mm/dd/yy', '05/25/2012');
$.datepicker.formatDate('MM d yy', date);

Все зависит от того, как вы определяете «эффективный»:

  • плотность кода? - Это эффективно imho.
  • Скорость и производительность? - Понятия не имею.
  • Локализация? - поддерживается , например $(selector).datepicker($.datepicker.regional['fr']);*
0 голосов
/ 07 января 2012

Получив доступ к массиву, вы можете сделать это

var monthArray = ['January', 'February', ... , 'December'];


var date = "05/25/2012";

var dateParts = date.split('/');

var convertedDate = monthArray[parseInt(dateParts[0], 10)] + " " + dateParts[1] + ", " + dateParts[2];
0 голосов
/ 07 января 2012

Как ни странно, я только что отправил связанный вопрос около получаса назад. Вот то, что я использую, но оно также анализирует время.

// Date m/d/Y Time h:m a
function parseDate(date,time) {

date = date.split("/");
time = time.split(" ");
hm = time[0].split(':'); 
if (parseInt(hm[0],10) == 12) {
    hm[0] = 0;
}
if (time[1] == 'pm') {
    hm[0] = parseInt(hm[0],10) + 12;
} else {
    hm[0] = parseInt(hm[0],10);
}
return new Date(
    parseInt(date[2],10), 
    parseInt(date[0],10)-1, 
    parseInt(date[1],10),
    hm[0],
    parseInt(hm[1],10)
);

}

Таким образом, вы можете легко удалить строки time и получить следующее ...

function parseDate(date) {

  date = date.split("/");

  return new Date(
    parseInt(date[2],10), 
    parseInt(date[0],10)-1, 
    parseInt(date[1],10)
  );

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...