HighChart从MYSQL查询中未显示正确的月份

时间:2015-06-15 06:51:51

标签: javascript mysql datetime highcharts

我的图表未显示正确的月份。我知道javascript 0表示1月。如何直接在查询中增加月份?或者我应该在highcharts中做其他功能吗?

$(function () {
$('#container').highcharts({
    chart: {
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false
    },
    title: {
        text: 'RCM Dashboard Philippines'
    },
     xAxis: {
        type: 'datetime',
        tickInterval: 30 * 24 * 3600 * 1000,
        dateTimeLabelFormats: { // don't display the dummy year
            day: '%b %e',
            year: '%Y'
        }, 
        title: {
            text: 'Date'
        }
    },
    yAxis: {
        title: {
            text: 'Number of Usage (m)'
        },
        min: 0
    },
    tooltip: {
        pointFormat: '{series.name}: <b>{point.y} Visit</b>'
    },
    plotOptions: {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
                enabled: true,
                format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                style: {
                    color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                }
            }
        }
    },
    series: [{
        type: 'line',
        name: 'RCM Dashboard Philippines',
        data: [
        <?php
        $sql=mysql_query("SELECT DATE_FORMAT(date_accessed,'%Y,%m,%d') as     dates, COUNT(date_accessed) as counts
FROM anreference WHERE date_accessed between '2015-01-01' AND '2015-06-03' group by date(date_accessed) order by date(date_accessed) limit 1000;");
        while($res=mysql_fetch_array($sql)) {
        ?>
            [Date.UTC(<?php echo $res['dates']; ?>),   <?php echo $res['counts']; ?>],

        <?php
        }
        ?>

        ]
    }]
});
});

1 个答案:

答案 0 :(得分:0)

已经有了一些解决方法。我使用MySQL查询DATE_SUB将日期减去一个月,以便将javascript值0补偿为1月。

SELECT DATE_FORMAT(DATE_SUB(date_accessed,INTERVAL 1 MONTH), '%Y,%m,%d') as dates, COUNT(date_accessed) as counts
FROM anreference WHERE date_accessed between '2015-01-01' AND '2015-06-03' group by date(date_accessed) order by date(date_accessed) limit 1000;