2016-11-18 4 views
0

У меня есть приложение, которое возвращает дату JSON для меня, которое я показываю на гистограмме Highcharts. Поле для оси x является датой и возвращается с сервера в формате JSON, например: «date»: «2016-11-15T00: 00: 00.000Z»HighCharts Формат даты

Я хочу показать дату на ось x как только 2016-11-15, или даже лучше, отображает ее в локальном формате даты, который в этом случае будет 2016-11-14, так как это GMT-5 часов.

Я прочитал документацию, но, похоже, она не работает. Любая помощь приветствуется!

ответ

1

Вы можете разобрать ISO дату строкового Js даты с датой конструктору. А затем получите временную метку в milisecond - это необходимый формат для Highcharts.

new Date("2016-11-15T00:00:00.000Z").getTime(), 

В свойстве format вы можете определить, как должна отображаться дата.

xAxis: { 
    type: 'datetime', 
    labels: { 
    format: '{value:%Y-%m-%d}', 
    } 
}, 

пример: http://jsfiddle.net/akehpzq4/4/

Для местного времени, см useUTC вариант.

+0

Работает отлично !! Спасибо! – user2843365

0

Вы можете использовать эту функцию для возврата DATE формата

function ReadDate(dateTM) { 
    var date = new Date(parseInt(dateTM.replace("/Date(", "").replace(")/", ""), 10)); 
    if (date.getFullYear() > 1 && date.getFullYear() != 1900) { 
     return (date.getDate() + '/' + (date.getMonth() + 1) + '/' + date.getFullYear()); 
    } else return "" 
} 

Вы можете прочитать руководство по этой ссылке How do I format a Microsoft JSON date?

+0

Да, это работает. Но как я могу назвать эту функцию в highchart? Я хочу, чтобы все даты на оси х использовали эту функцию. Большое вам спасибо за помощь! – user2843365

+0

Почему 'date.getFullYear()! = 1900'? – RobG

+0

XAxis: { категории: ReadDate (значение), tickmarkPlacement: 'на', название: { Enabled: ложь }} , – Bader