Флотная диаграмма не отображает дату в xaxis

1

Я пытаюсь построить xaxis на флот-карте с датой. Я попытался с настройкой xaxis, а также с помощью javascript EPOCH, но все равно не успел, вот мой кусок кода.

<?php
 foreach($data[0] as $i => $d){    
    foreach ($d as $key => $value) {
        $data[0][$i][$key][0] = strtotime($value[0]);
    }    
 }

 $data1 = json_encode($data[0][0]);
 $data2 = json_encode($data[0][1]);

 echo $data1;

/* print $data1 will give this */
[[1367605800,"0.006"],[1367692200,"0.012"],[1367778600,"0.394"],[1367865000,"0.509"],[1367951400,"0.000"],[1368037800,"0.032"],[1368124200,"0.000"]]

/*for checking purpose */
$json = json_decode($data1);
foreach ($json as $key => $val) {
    $readabledate  = date("m-d-Y", $val[0]).'<br>';
    echo $readabledate;
}

/* after decoding 1367605800,1367692200,... i get date in readable format again thsis is what i need in xaxis
05-05-2013
05-06-2013
05-07-2013
05-08-2013
05-09-2013
05-10-2013   
*/
?>

<script>

$(function () {
     /**
     * Flot charts data and options
     */
    var data1 = <?php echo $data1;?>;
    var data2 = <?php echo $data2;?>;

    /*checking static date values */
    var date = new Date(1367605800*1000);

    alert(date);
    //Sat May 04 2013

    /*alert showing 1367605799.2 value
    ends here*/

    var chartUsersOptions = {
         grid: {
            tickColor: "#f0f0f0",
            borderWidth: 1,
            borderColor: 'f0f0f0',
            color: '#6a6c6f'
        },

        xaxis: {
                mode: "time",
                timeformat: "%Y/%m/%d",
                minTickSize: [1, "day"]
                },

        colors: [ "#62cb31", "#efefef"],
    };
    $.plot($("#flot-line-chart"), [data1, data2], chartUsersOptions);
});
</script>

если я удалю minTickSize: [1, "day"] из xaxis config, его график 1970/01/16 в 1970/01/16. где я ошибаюсь или как это можно сделать. пожалуйста, предложите

Теги:
flot

1 ответ

0

Я выяснил решение, в основном javascript epoch вычисляет время, умножая его на 1000, которые я показал, принимая статическое значение.

var data1 = <?php echo $data1;?>;
var data2 = <?php echo $data2;?>;

/*checking static date values */
var date = new Date(1367605800*1000);

alert(date);
//Sat May 04 2013

так что для этого со всем var data1 мне просто нужно умножить $data[0][$i][$key][0] = strtotime($value[0])*1000; в моем php-коде. что проблема решена. Ура..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню