Javascript 使用json/php的部件需要帮助吗
我需要帮助将series数据部分生成jsonJavascript 使用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
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
返回的字符串构造。