Date 谷歌图表api日期格式

Date 谷歌图表api日期格式,date,google-visualization,Date,Google Visualization,下面的答案建议使用mysql,但是我决定切换到PDO以提高安全性。然而,当我应用相同的代码时,我很难让它正常工作。我不得不在PDO中将while切换到foreach 更新:使用PHP PDO $sql = "SELECT * FROM userrecords"; $stmt = $conn->prepare($sql); $stmt->execute(); $data = $stmt->fetchAll(); foreach ($data as $row) { $d

下面的答案建议使用mysql,但是我决定切换到PDO以提高安全性。然而,当我应用相同的代码时,我很难让它正常工作。我不得不在PDO中将
while
切换到
foreach

更新:使用PHP PDO

$sql  = "SELECT * FROM userrecords";
$stmt = $conn->prepare($sql);
$stmt->execute();
$data = $stmt->fetchAll();

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

  $dataArray[] = "[new Date ($year, $month, $day), {$row['scientificname']}, {$row['category_of_taxom']}]";

 }
 echo $dataArray;

基于您的解决方案,您必须将日期解析为javascript的日期对象格式:

$dataArray = array();
while($row = mysqli_fetch_array($result)) {
    $dateArray = explode('-', $row['Date']);
    $year = $dateArray[0];
    $month = $dateArray[1] - 1; // subtract 1 since javascript months are zero-indexed
    $day = $dateArray[2];
    $dataArray[] = "[new Date($year, $month, $day), {$row['SpeciesA']}, {$row['Speciesb']}]";
}
由于json_encode函数将在此处中断日期,因此我们必须以稍微不同的方式将其解析到DataTable构造函数中:

var data = new google.visualization.DataTable();
data.addColumn('date', 'Date');
data.addColumn('number', 'Species A');
data.addColumn('number', 'Species B');
data.addRows(<?php echo '[' . implode(',', $dataArray) . ']'; ?>);
var data=new google.visualization.DataTable();
data.addColumn('date','date');
data.addColumn('编号','物种A');
data.addColumn('数量','物种B');
data.addRows();

表中的月份是一个月后的月份,无论是加、减还是不使用$month变量。无论是哪一个月,它都是未来的一个月?如果您遵循我在上面发布的代码(假设您的日期字符串的格式为
“yyy-mm-dd”
),那么月份就不应该停止。发布服务器呈现的javascript(在浏览器中打开、查看源代码并复制javascript)、数据库中的原始数据(在PHP中处理之前),以及显示月份间隔为1的屏幕截图。没关系,它们是正确的,我正在查看内爆文本,看到它说1个月后(因为我们-1)并且思考为什么图表+1个月的值是这个值。我脑子里的逻辑搞错了,这是漫长的一天!