【发布时间】:2015-05-14 07:09:23
【问题描述】:
注意:这是an earlier post of mine 的后续问题。
我有一个 PHP 数组,我需要将其解析为 JavaScript。目前我正在尝试这样做,在 JavaScript 中使用<?php echo json_encode($array_name)?>。对于数组中的大多数数据,这工作正常,日期除外。我试图解析的数组如下所示:
$timeData = array(
array('1', 'Some task', date('2015-04-09'), date('2015-04-23')),
array('2', 'Another task', date('2015-04-13'), date('2015-04-20')),
array('3', 'A different task', date('2015-04-16'), date('2015-04-30))
);
?>
我需要解析这个数组,使其在Google Charts Timeline 中可用,函数看起来像这样(见代码中的注释):
<script type="text/javascript" src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization',
'version':'1','packages':['timeline']}]}"></script>
<script type="text/javascript">
google.setOnLoadCallback(drawChart);
function drawChart() {
var container = document.getElementById('example2.1');
var chart = new google.visualization.Timeline(container);
var dataTable = new google.visualization.DataTable();
dataTable.addColumn({ type: 'string', id: 'Term' });
dataTable.addColumn({ type: 'string', id: 'Name' });
dataTable.addColumn({ type: 'date', id: 'Start' });
dataTable.addColumn({ type: 'date', id: 'End' });
// This is the part I would like to replace with the PHP array
dataTable.addRows([
[ '1', 'George Washington', new Date(1789, 3, 29), new Date(1797, 2, 3) ],
[ '2', 'John Adams', new Date(1797, 2, 3), new Date(1801, 2, 3) ],
[ '3', 'Thomas Jefferson', new Date(1801, 2, 3), new Date(1809, 2, 3) ]]);
chart.draw(dataTable);
}
</script>
我尝试了几种在 PHP 数组中创建日期的不同方法,包括 new Date() 和 new DateTime(),但都没有成功。我最后的手段是在解析数据之前将数组分成几部分。然而这似乎有点傻,因为它要在 JavaScript 中再次组合成一个数组。有什么方法可以在 PHP 数组中写入日期,以便它们在解析为 JavaScript 时起作用?
【问题讨论】:
-
有效的解决方案在答案中 - stackoverflow.com/questions/36233412/…
标签: javascript php arrays json date