Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

json date format to Highcharts date format

Could please someone guide me how to get such json object datetime

 {
    value="01/01/2013 08:00", 
    key=5.5
 }

to javascript (to use in Highcharts) datetime acceptable format

[Date.UTC(2013, 0, 1,08,00), 5.5].

UPDATE

Here is what I'm trying to do:

var chart;

$(document).ready(function () {

    chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            zoomType: 'x'
        },
        yAxis: {
            type: 'double',
            min: 0
        },
        xAxis: {
            type: 'datetime',
            labels: {
                formatter: function () {
                    return Highcharts.dateFormat('%a %d %b %H:%M', this.value);
                },
                dateTimeLabelFormats: {
                    minute: '%H:%M',
                    hour: '%H:%M',
                    day: '%e. %b',
                    week: '%e. %b',
                    month: '%b \'%y',
                    year: '%Y'
                }
            }
        },
        series: [{
            name: 'MyData1',
            data: []
        }, {
            name: 'MyData2',
            data: []
        }]

    });

    chart.series[0].setData([
        [Date.UTC(2013, 0, 1, 08, 00), 4.4],
        [Date.UTC(2013, 0, 1, 12, 00), 6.0],
        [Date.UTC(2013, 0, 1, 17, 00), 7.7],
        [Date.UTC(2013, 0, 1, 22, 00), 5.8]
    ]);
    chart.series[1].setData([
        [Date.UTC(2013, 0, 1, 08, 30), 0.4],
        [Date.UTC(2013, 0, 1, 10, 00), 0.0],
        [Date.UTC(2013, 0, 1, 16, 00), 0.7],
        [Date.UTC(2013, 0, 1, 20, 00), 0.8]
    ]);
});

here is it in jsFiddle.

var datatype1=[];
var datatype2= [];

    for(index in userReadingsJsonCollection.items){
          if(userReadingsJsonCollection.items[index].ReadingsData.Reading_Type==type1){
                datatype1.push( 
[Date.parse(userReadingsJsonCollection.items[index].ReadingsData.Rec_DateTime),
                userReadingsJsonCollection.items[index].ReadingsData.Reading]
                );
            }
          if(userReadingsJsonCollection.items[index].ReadingsData.Reading_Type==type2){
                datatype2.push(
                [userReadingsJsonCollection.items[index].ReadingsData.Rec_DateTime,
                userReadingsJsonCollection.items[index].ReadingsData.Reading]              
                );
            }
    }

The result I get is [[1357027200000,5.5]] and this works great.

like image 982
agri Avatar asked Feb 03 '13 01:02

agri


1 Answers

If your time is already UTC then it's as simple as:

Date.parse("01/01/2013 08:00")

EDITS

Assuming your data comes back as valid JSON:

var jsonObj = {value:"01/01/2013 08:00", key:5.5}; 

var seriesOneData = [];
seriesOneData.push([Date.parse(jsonObj.value),jsonObj.key]);
like image 117
Mark Avatar answered Sep 24 '22 05:09

Mark