Замена числовых месяцев на слова в JavaScript - PullRequest
0 голосов
/ 21 апреля 2011

У меня есть эти данные в моем массиве

var dateData = [2010-01-01 ,2010-02-20,2010-03-17,2010-04-11,2010-05-06,2010-05-31]

Я буду отображать эти данные под осью X моей диаграммы, используя встроенную функцию ниже

xaxis: {noTicks:6,tickFormatter: function(n)
{
var k = Math.round(n);
return dateData[k]; 
}

У меня вопрос, могу ли я заменить числовые месяцы на слова во время отображения ??

Например, для 2010-01-01 мне нужно 2010-JAN-01, аналогично для 2010-03-17 нужно 2010-MAR-17

Ответы [ 4 ]

1 голос
/ 21 апреля 2011

Вы можете использовать массив (обратите внимание, пустой 0-й элемент):

var monthNames = ['','JAN','FEB','MAR',...];

Тогда вы можете просто написать:

var monthNumber = 3;  // March
alert(monthNames[monthNumber]); // MAR

Если вы используете объект Date в JavaScript, индексы месяцевс нуля так:

var monthNames = ['JAN','FEB','MAR','APR','MAY',...];
var now = new Date();
alert(monthNames[now.getMonth()]); // APR
1 голос
/ 21 апреля 2011

Javascript не имеет встроенных функций форматирования даты. Вы можете пойти с внешней библиотекой (я рекомендую эту ) или просто создать объект с именами вдоль линий

var month_names = {
    1: 'JAN', 2: 'FEB' // ..and so on..
}

А затем используйте номера месяцев в качестве ключей для month_names.

0 голосов
/ 23 апреля 2011

В качестве альтернативы:

var monthNames=['JAN','FEB','MAR','APR','MAY'],
    d='2010-01-23',
    a=d.split('-');
    a[1]=monthNames[a[1]-1];
    d=a.join('-');

См. Рабочий пример: http://jsfiddle.net/herostwist/JWUqn/1/

0 голосов
/ 23 апреля 2011
var monthNames=['JAN','FEB','MAR','APR','MAY'],
    date='2010-01-23',
    m=date.match(/-(\d\d)-/),
    newdate=date.replace(/-\d\d-/,'-'+monthNames[(RegExp.$1-1)]+'-');

См. Рабочий пример: http://jsfiddle.net/herostwist/JWUqn/

...