繁体   English   中英

在Google图表中解析JSON编码日期字段时出现问题

[英]Issue in parsing JSON encoded date field in google chart

我在使用日期字段作为范围过滤器的Google图表中实现“ ChartRangeFilter”控件时遇到问题。 我正在使用JSON方法(JSON编码数据)从MySQL数据库中获取数据,并将其用于在Laravel应用程序中渲染折线图。

如果我将Date字段用作String数据类型,那么它可以工作,但是由于它仅适用于数字和数据类型字段,因此我无法实现“ ChartRangeFilter” ,因此,我已经使用Date构造函数在视图中对整个数据进行了硬编码。 egnew日期(年,月,日)。

但是,对数据进行硬编码不是可行的解决方案,因此,有没有其他可用的解决方案,可以在Google图表的“ ChartRangeFilter”中使用JSON编码的日期字段?

这是我的代码片段,其中包含硬编码的示例数据。

function drawChart() {

    var jsonData = $.ajax({
    url: 'get_salesthree',
    dataType: 'json',
    async: false
                    }).responseText;

    var data = new google.visualization.DataTable(jsonData);
    var Data = new google.visualization.DataTable(); 

    Data.addRows([
    [new Date(2011, 01, 00),    9102,   0,      2150,   10026,  332,    5097,   28989,  16620,  90770,  1805,   0,      735,    30212,  9185,   5578 ]

我通过更改PHP代码中的Date格式,然后以Google图表可以理解的方式将其编码为JSON来解决它。

这是我的PHP代码段,其中包含将Date格式编码为JSON时的更改。

foreach($salesthree as $salethree)
{   

        $date = substr(($salethree->Datetime), 0, 10);
        $dateArr = explode('-', $date);
        $year = $dateArr[0];
        $month = $dateArr[1] - 1; // subtract 1 because javascript uses a zero-based index for months
        $day = $dateArr[2];
        $json['rows'][] = array('c' => array(
        array('v' => "Date($year, $month, $month)"),
        array('v' =>$salethree->Chevrolet),
        array('v' =>$salethree->Datsun),
        array('v' =>$salethree->Fiat),
        array('v' =>$salethree->Ford)
            ));
    }

    return $json;
 }

现在,我的JSON看起来像。

 {"cols":[{"label":"Date","type":"date"},{"label":"Chevrolet","type":"number"},{"label":"Datsun","type":"number"},{"label":"Fiat","type":"number"},{"label":"Ford","type":"number"}],"rows":[{"c":[{"v":"Date(2011, 0, 31)"},{"v":9102},{"v":0},{"v":2150},{"v":10026},{"c":[{"v":"Date(2011, 1, 28)"},{"v":8634},{"v":0},{"v":1839},{"v":9293},{"c":[{"v":"Date(2011, 2, 31)"},{"v":8736},{"v":0},{"v":1860}]}]}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM