更改高图表输出以显示开始-结束日期


Alter highchart output to display start - end date

我目前有以下高图,显示开始日期并输出接下来31天的数据值。有人知道我如何改进这一点,包括和结束日期,以便我可以按较小的特定数量过滤数据吗?在x轴上,我还试图只显示附加了数据的标签,并隐藏任何其他标签。感谢您的帮助。

我的代码如下:

<script type="text/javascript">
    var chart;
    $(document).ready(function () {
        chart = new Highcharts.Chart({
            chart: {
                renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 25
            },
            title: {
                text: '<?php echo $type ?>',
                x: -20 //center
            },
            xAxis: {
                categories: [ <? php
                $start = $_POST["dateStart"];
                $dates = array();
                for ($i = 0, $days = date('t', strtotime($start)); $i < $days; ++$i) {
                    $dates[] = date('Y-m-d', strtotime($start.' + '.$i.' day'));
                }
                echo "'".implode("', '", $dates)."'"; ?> ]
            },
            yAxis: {
                title: {
                    text: 'Total Amount'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#808080'
                }]
            },
            tooltip: {
                formatter: function () {
                    return '<b>' + this.series.name + '</b><br/>' + this.x + ': ' + this.y;
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            },
            series: [ <? php
            foreach($array as $legend = > $data) {
                echo '{';
                echo "name: '".$legend."',";
                $values = array();
                for ($i = 0; $i < $days; ++$i) {
                    $date = date('Y-m-d', strtotime($start.' + '.$i.' day'));
                    $values[] = isset($data[$date]) ? $data[$date] : 0;
                }
                echo 'data: ['.implode(', ', $values).'],';
                echo '},';
            } ?> ]
        });
    });

感谢

请注意以下内容不安全。您应该始终对用户提交的数据进行健全性检查。

   xAxis: {
        categories: [ <? php
        $start = $_POST["dateStart"];
        $end = $_POST["dateEnd"];
        $dates = array();
        $current=$start;
        while($current<=$end){
            $dates[]=$current;
            $current=date('Y-m-d', strtotime($current.' + 1 day'));
        }
        echo "'".implode("', '", $dates)."'"; ?> ]
    },