gpt4 book ai didi

javascript - 使用时间轴谷歌图表 api 与 php - 数据表初始化

转载 作者:行者123 更新时间:2023-11-29 23:49:42 25 4
gpt4 key购买 nike

我正在尝试实现时间轴谷歌图表 https://developers.google.com/chart/interactive/docs/gallery/timeline

但是使用日期格式会在生成图表时产生一些错误。所有日期均默认设置为1969 年 12 月 31 日。我知道我传递的日期格式错误。我该如何解决这个问题。

尝试以两种方式实现:

$table['cols'] = array(
array('id' => 'Role', 'type' => 'string'),
array('id' => 'Name', 'type' => 'string'),
array('id' => 'Start', 'type' => 'date'),
array('id' => 'End', 'type' => 'date')
);

一种方法:

$temp[] = array('v' => (string) $row['FirstName']); /*mysql and mysqli security please ignore */
$temp[] = array('v' => (string) $row['FirstName']);
$temp[] = array('v' => date('D M d Y H:i:s O',$row['HireDate'])); /*tried without date function also*/
$temp[] = array('v' => date('D M d Y H:i:s O',$row['ExpectedEndDate']));
$rows[] = $temp;

其他方式:

$temp[] = $row['FirstName'];
$temp[] = $row['FirstName'];
$temp[] =date('D M d Y H:i:s O',$row['HireDate']);
$temp[] =date('D M d Y H:i:s O',$row['ExpectedEndDate']);
$rows[] = $temp;

然后将其存储到表中并转换为json

$table['rows'] = $rows;
$jsonTable = json_encode($table);

使用谷歌可视化DataTable将其存储为javascript变量,如下所示:

 var dataTable = new google.visualization.DataTable(<?php echo $jsonTable;?>);

但是由于日期格式冲突(我认为),图表没有被输出

在检查最终生成的输出时,变量将值存储为:

var dataTable = new google.visualization.DataTable({"cols":[{"id":"Role","type":"string"},{"id":"Name","type":"string"},{"id":"Start","type":"date"},{"id":"End","type":"date"}],"rows":[[{"v":"bob"},{"v":"bob"},{"v":"Wed Dec 31 1969 16:33:28 -0800"},{"v":"Wed Dec 31 1969 16:33:33 -0800"}],[{"v":"alan"},{"v":"alan"},{"v":"Wed Dec 31 1969 16:33:28 -0800"},{"v":"Wed Dec 31 1969 16:33:33 -0800"}]]});

任何人都可以建议如何使其发挥作用。提前致谢。

最佳答案

这是你的问题:

$temp[] = array('v' =>  date('D M d Y H:i:s O',$row['HireDate']));

日期必须以非常具体的字符串格式输入:“日期(年、月、日、时、分、秒)”,其中 是从零开始的月份索引,之后的所有内容都是可选的(默认为 1,其他所有内容默认为 0)。要以此格式输入日期,您应该执行以下操作:

$date = date('D M d Y H:i:s O',$row['HireDate']));
$year = (int) date_format($date, 'Y');
$month = ((int) date_format($date, 'm')) - 1; // adjust to javascript's 0-indexed months
$day = (int) date_format($date, 'd');
$hours = (int) date_format($date, 'H');
$minutes = (int) date_format($date, 'i');
$seconds = (int) date_format($date, 's');

$temp[] = array('v' => "Date($year, $month, $day, $hours, $minutes, $seconds");

关于javascript - 使用时间轴谷歌图表 api 与 php - 数据表初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706810/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com