Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将新日期放入数组php中_Php_Date_Google Visualization_Json - Fatal编程技术网

将新日期放入数组php中

将新日期放入数组php中,php,date,google-visualization,json,Php,Date,Google Visualization,Json,对于Google Visualization,我手工编写了JSON(我知道很凌乱),我没有想到NAME\u TEAM中的,,最近出现了一个问题,因为我的第一个团队名称是用撇号输入的。我已经阅读并尝试实现phpjson\u encode。我对日期有意见。新日期在旧的凌乱的json格式中运行良好,但是当我尝试在json_encode版本中使用任何类似的内容时,会出现一个错误致命错误:Class'Date'。格式必须是date,可视化api才能理解这些值 foreach ($data as $row)

对于Google Visualization,我手工编写了JSON(我知道很凌乱),我没有想到
NAME\u TEAM
中的
,最近出现了一个问题,因为我的第一个团队名称是用撇号输入的。我已经阅读并尝试实现php
json\u encode
。我对日期有意见。
新日期
在旧的凌乱的json格式中运行良好,但是当我尝试在json_encode版本中使用任何类似的内容时,会出现一个错误
致命错误:Class'Date'
。格式必须是date,可视化api才能理解这些值

foreach ($data as $row) {
$dateArray = explode('-', $row['THE_DATE']);
$year = $dateArray[0];
$month = $dateArray[1] - 1;
$day = $dateArray[2];
$dataArray[] = "[new Date ($year, $month, $day),  {$row['ORANGE']}, {$row['GREEN']}, '{$row['NAME_TEAM']}']";


$itemOutput[] = array(
new Date($year, $month, $day),
$row['ORANGE_SCORE'],
$row['GREEN_SCORE'],
$row['NAME_TEAM'],
);
}
echo "data.addRows(" . json_encode($itemOutput) . ");" ;
数据表创建

  function drawDashboard() {
         //var data = new google.visualization.DataTable();
          var data = new google.visualization.DataTable(<?php echo json_encode($itemOutput, JSON_NUMERIC_CHECK); ?>);
            data.addColumn('date', 'Date');
            data.addColumn('number', 'ORANGE_SCORE');
            data.addColumn('number', 'GREEN_SCORE');
            data.addColumn('string', 'NAME_TEAM');

       //   data.addRows(<?php echo '[' . implode(',', $dataArray) . ']'; ?>);

如果是案例1或案例2,您想要什么

结果是案例2


如果是案例1或案例2,您想要什么

结果是案例2


您不能在JSON中使用日期对象;传输日期的唯一方法是通过字符串,但是
DataTable.addRows
方法不会将字符串解析为日期对象,因此必须转换为完整的JSON结构才能实现这一点。下面是一个例子:

$itemOutput = array(
    'cols' => array(
        array('type' => 'date', 'label' => 'Date'),
        array('type' => 'number', 'label' => 'ORANGE_SCORE'),
        array('type' => 'number', 'label' => 'GREEN_SCORE'),
        array('type' => 'string', 'label' => 'NAME_TEAM')
    ),
    'rows' => array()
);

foreach ($data as $row) {
    $dateArray = explode('-', $row['THE_DATE']);
    $year = $dateArray[0];
    $month = $dateArray[1] - 1;
    $day = $dateArray[2];

    $itemOutput['rows'][] = array('c' => array(
        array('v' => "Date($year, $month, $day)"),
        array('v' => $row['ORANGE_SCORE']),
        array('v' => $row['GREEN_SCORE']),
        array('v' => $row['NAME_TEAM'])
    ));
}
然后在javascript中:

var data = new google.visualization.DataTable(<?php echo json_encode($itemOutput, JSON_NUMERIC_CHECK); ?>);
var data=new google.visualization.DataTable();

您不能在JSON中使用日期对象;传输日期的唯一方法是通过字符串,但是
DataTable.addRows
方法不会将字符串解析为日期对象,因此必须转换为完整的JSON结构才能实现这一点。下面是一个例子:

$itemOutput = array(
    'cols' => array(
        array('type' => 'date', 'label' => 'Date'),
        array('type' => 'number', 'label' => 'ORANGE_SCORE'),
        array('type' => 'number', 'label' => 'GREEN_SCORE'),
        array('type' => 'string', 'label' => 'NAME_TEAM')
    ),
    'rows' => array()
);

foreach ($data as $row) {
    $dateArray = explode('-', $row['THE_DATE']);
    $year = $dateArray[0];
    $month = $dateArray[1] - 1;
    $day = $dateArray[2];

    $itemOutput['rows'][] = array('c' => array(
        array('v' => "Date($year, $month, $day)"),
        array('v' => $row['ORANGE_SCORE']),
        array('v' => $row['GREEN_SCORE']),
        array('v' => $row['NAME_TEAM'])
    ));
}
然后在javascript中:

var data = new google.visualization.DataTable(<?php echo json_encode($itemOutput, JSON_NUMERIC_CHECK); ?>);
var data=new google.visualization.DataTable();

新日期($year,$month,$day)
实际上不是有效的JSON。您正在构建文本Javascript源代码,而不是JSON。您应该将JSON中的日期编码为常规字符串,然后在Javascript中对其进行后期处理,使其成为Javascript对象。我应该将我的日期存储为字符串,例如
“新日期(2013,8,14)”
这将如何改变我对visualization.DataTable'
data.addRows()的输入方式
我已经在初始问题中添加了额外的代码,显示了JSON的集成位置。有帮助的问题:
新日期($year,$month,$day)
实际上不是有效的JSON。您正在构建文本Javascript源代码,而不是JSON。您应该将JSON中的日期编码为常规字符串,然后在Javascript中对其进行后期处理,使其成为Javascript对象。我应该将我的日期存储为字符串,例如
“新日期(2013,8,14)”
这将如何改变我对visualization.DataTable'
data.addRows()的输入方式
我在初始问题中添加了额外的代码,显示了JSON的集成位置帮助问题: