2013-11-07 4 views
1

Мне нужно положить в формате времени оси y hh: mm, например ось y должна иметь 16: 00,32: 00 и т. Д. Тики или что-л. simmilar.
Я работаю с highcharts - я новичок в JS и веб-программировании.
У меня есть данные в миллисекундах и конвертируйте их в формат hh: mm, но когда у меня есть miliseconds больше, чем 86400000 (24 часа), это показывает мне следующую дату, и мне нужно, чтобы она отображалась в часах: формат минут.
Есть ли способ сделать это? Я попытался изменить ось y от type: 'datetime' до type: 'time', но это не помогло мне. Вот jsfiddle пример моих графиков и ниже вы можете найти только js-код.Выполнение оси y высоких диаграмм во времени формате hh: mm

$(function() { 
     $('#container').highcharts({ 
      chart: { 
       type: 'column' 
      }, 
      xAxis: { 
       categories: [ 
        'Jan', 
        'Feb', 
        'Mar', 
        'Apr', 
        'May', 
        'Jun', 
        'Jul', 
        'Aug', 
        'Sep', 
        'Oct', 
        'Nov', 
        'Dec' 
       ] 
      }, 
      yAxis: { 

       title: { 
        text: 'Time (hh:mm)' 
       }, 
       type: 'datetime', 
       dateTimeLabelFormats: { 
       hour: '%H:%M' 
      } 
      }, 
      plotOptions: { 
       column: { 
        pointPadding: 0.2, 
        borderWidth: 0 
       } 
      }, 
      series: [{ 
       name: 'Tokyo', 
       data: [0, 0, 0, 0, 76320000, 25920000, 102840000, 0, 0, 0, 0, 0] 

      }] 
     }); 
    }); 

ответ

1

Так вот ответ, который у меня есть, если кому-то это нужно (вот link для jsfiddle).
установить время переменные в мс:

data: [0, 0, 0, 0, 76320000, 25920000, 102840000, 0, 0, 0, 0, 0] 

А затем отформатировать это значение как мне нужно:

yAxis: { 
      title: { 
       text: 'Time (hh:mm)' 
      }, 
      labels: { 
       formatter: function() { 
        var time = this.value; 
        var hours1=parseInt(time/3600000); 
        var mins1=parseInt((parseInt(time%3600000))/60000); 
        return hours1 + ':' + mins1; 
       } 
      } 
     } 

Это единственный способ, которым я нашел, чтобы у оси в чистом чч: мм. Также вы можете сделать данные не в мс, но в ж/е вы хотите или нуждаетесь.

0

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

yAxis: { 
    labels: { 
     formatter: function() { 
      //get the timestamp 
      var time = this.value; 
      //now manipulate the timestamp as you wan using data functions 
     } 
    } 
} 

надеюсь, что это поможет вам в достижении того, что вам нужно.

+0

Не могли бы вы показать, как это работает с моей силой? – Donvino

+1

похоже на это http://jsfiddle.net/wp59S/2/ без даты, и отображаются только часы и минуты – Strikers

+0

Как вы можете видеть в своем упражнении через 24 часа, оно начинается с 0, и мне нужно, чтобы это было что-то вроде 31 часы и 21 минута – Donvino

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