Javascript 使用json/php的部件需要帮助吗

Javascript 使用json/php的部件需要帮助吗,javascript,php,json,highcharts,Javascript,Php,Json,Highcharts,我需要帮助将series数据部分生成json var图表=新的Highcharts.图表({ 图表:{ renderTo:“容器” }, xAxis:{ 键入:“日期时间” }, 系列:[{ 数据:[ [UTC日期(2010年0月1日),29.9], [UTC日期(2010年0月2日),71.5], [UTC日期(2010年0月3日),106.4], [UTC日期(2010年0月6日),129.2], [UTC日期(2010,0,7),144.0], [UTC日期(2010,0,8),176.0

我需要帮助将series数据部分生成json

var图表=新的Highcharts.图表({
图表:{
renderTo:“容器”
},
xAxis:{
键入:“日期时间”
},
系列:[{
数据:[
[UTC日期(2010年0月1日),29.9],
[UTC日期(2010年0月2日),71.5],
[UTC日期(2010年0月3日),106.4],
[UTC日期(2010年0月6日),129.2],
[UTC日期(2010,0,7),144.0],
[UTC日期(2010,0,8),176.0]
]
}]
});
我的php部分

[1318354710,1318354710,1318354710,1318354710]
foreach($behavior as$value){
$chart['xAxis']['categories'][]=时间($value['date']);
}
Json输出

[1318354710,1318354710,1318354710,1318354710]
我不知道我的
php
代码需要做什么才能用有效的json完成这部分

我需要帮助的地方

系列:[{
数据:[
[UTC日期(2010年0月1日),29.9],
[UTC日期(2010年0月2日),71.5],
[UTC日期(2010年0月3日),106.4],
[UTC日期(2010年0月6日),129.2],
[UTC日期(2010,0,7),144.0],
[UTC日期(2010,0,8),176.0]
]
}]

如何解决此问题?

日期。UTC返回自1970年1月1日午夜以来日期字符串中的毫秒数。这与UNIX时间戳相同。所以
[Date.UTC(2010,0,1),29.9]
转换成
[1262304000,29.9]

在PHP中,有许多方法可以获取此时间戳。一种简单的(面向对象的)方法是使用DateTime类:

$time=newdatetime($value['date'],newdatetimezone('UTC'));
$chart['xAxis']['categories'][=$time->getTimestamp();
更新 在不了解代码的详细信息的情况下,我所能做的就是提供一些示例代码:

<?php
// sample data
$behaviour = array(
    array(
        'date' => '2010-01-01',
        'datum' => 29.9
    ),
    array(
        'date' => '2010-01-02',
        'datum' => 71.5
    ),
    array(
        'date' => '2010-01-03',
        'datum' => 106.4
    ),
    array(
        'date' => '2010-01-06',
        'datum' => 129.2
    ),
    array(
        'date' => '2010-01-07',
        'datum' => 144
    ),
    array(
        'date' => '2010-01-08',
        'datum' => 176
    )
);

// creates the container information
$output = array(
    'chart' => array(
        'renderTo' => 'container'
    ),

    'xAxis' => array(
        'type' => 'datetime'
    ),

    'series' => array()
);

// adds the sample data
foreach ($behaviour as $value) {
    $time = new DateTime($value['date'], new DateTimezone('UTC'));
    $output['series'][0]['data'][] = array(
        $time->getTimestamp(), $value['datum']
    );
}

// output as JSON
header('Content-type: application/json');
echo json_encode($output); 
?>


可以根据您的实际代码进行调整。

[Date.UTC(2010,0,1),29.9]
不是有效的JSON;它是JavaScript。而且,第一个代码显然已经是JavaScript了——为什么要将其转换为JavaScript?另外,请注意php的
time
函数不带任何参数。因为我要生成的图表超过100000个,所以我需要使用数据库生成所有图表,并使用json创建我的chart@phihag:我相信“第一个代码”是OP希望使用PHP生成的输出。
$value['date']是什么格式和时区
存储在?中,我相信我需要用我的php为一个数组设置日期,以便执行有效的json输出(对于系列[(数据…部分)?对于这个部分!:)您知道我需要如何执行生成系列的php代码:[{数据:[部分?jquery中的所有数据都在一个数组中([Date.UTC(2010,0,1),29.9],[Date.UTC](2010,0,2),71.5],),但在我的json输出数据部分中看起来像[131835471013183547101318354710131835471013183547101318354710]我添加了一些示例代码来说明如何创建json数据。输出可以分配给
var chart=new Highcharts.chart()
例如使用AJAX回调例程,或者使用从
json\u encode
返回的字符串构造。