如何将JSON日期显示到javascript google图表

时间:2017-09-06 23:26:50

标签: javascript php json date google-visualization

我非常需要帮助,我需要将我的数据库中的php json数据输出到Google Chart javascript。这是我的php json代码:

$data_points = array();
while($row = mysqli_fetch_array($result)){  
$wholedate = $row['time_stamp'];    
$monthNum = date('m',strtotime($row['time_stamp']));
$DayNum = date('d', strtotime($row['time_stamp']));   
$yearnum = date('Y', strtotime($row['time_stamp']));   
$dateObj   = DateTime::createFromFormat('!m', $monthNum);
$monthName = $dateObj->format('F');
if($monthNum == "9"){
      if (array_key_exists($DayNum, $data_points)) {
      $data_points[$DayNum]->ph += $row['ph'];
      $data_points[$DayNum]->moist += $row['moist'];
          }else{
      $data_points[$DayNum]->ts = $yearnum."".$monthNum."".$DayNum;    
      $data_points[$DayNum]->ph = $row['ph'];
      $data_points[$DayNum]->moist = $row['moist'];   
  }
}

  }
$jsonResult = json_encode(array_values($data_points));
echo $jsonResult;

以上代码输出以下内容:

  

[{ “TS”: “20170915”, “ph” 的: “8”, “湿润”: “1”},{ “TS”: “20170913”, “ph” 的: “8”, “湿润” : “1”},{ “TS”: “20170916”, “ph” 的: “3”, “湿润”: “1”},{ “TS”: “20170908”, “ph” 的: “2”,”湿润 “:” 1 “},{” TS “:” 20170901" , “ph” 的: “3”, “湿润”: “5”},{ “TS”: “20170902”, “PH”:1064,”湿润 “:15},{” TS “:” 20170906" , “PH”:1896, “湿润”:0}]

这是我的日期javascript代码中的一行,它不输出来自我的json的确切日期:

$.each(results, function (i, row) {
          var dbdate = new Date(<?php echo $jsonResult;?>)
          console.log(dbdate)

          data.addRow([
          new Date(dbdate.getFullYear(), dbdate.getMonth(), row.ts),
         // new Date(dbdate.getFullYear()row.ts),
          parseFloat(row.ph),
          parseFloat(row.moist)
            ]);
          });

2 个答案:

答案 0 :(得分:0)

据推测,您正在询问如何从某些JSON获取时间戳并将其转换为日期。

首先解析JSON,然后获取时间戳,然后将它们解析为Dates。以前所有这些问题都已得到解答,但这可能是Why does Date.parse give incorrect results?的副本,应该重命名为如何将字符串解析为日期,为什么我不应该使用内置解析器?

var text = '[{"ts":"20170915","ph":"8","moist":"1"},{"ts":"20170913","ph":"8","moist":"1"},{"ts":"20170916","ph":"3","moist":"1"},{"ts":"20170908","ph":"2","moist":"1"},{"ts":"20170901","ph":"3","moist":"5"},{"ts":"20170902","ph":1064,"moist":15},{"ts":"20170906","ph":1896,"moist":0}]';

// Parse JSON
var arr = JSON.parse(text);

// Get timestamps and parse to Dates
// Helper: parse yyyymmdd to Date
function parseDate(s) {
  var b = s.match(/\d\d/g);
  return new Date(b[0] + b[1], b[2]-1, b[3]);
}

// Display dates
arr.forEach(function(obj) {
  console.log(parseDate(obj.ts).toString());
});

您可能也对Where can I find documentation on formatting a date in JavaScript?

感兴趣

答案 1 :(得分:0)

我创建了以下行:

  

$ wholedate =日期(&#39; C&#39;,的strtotime($行[&#39; TIME_STAMP&#39;]));

并将其分配给数组time_stamp:

  

$ data_points [$ DayNum] - &gt; time_stamp = $ wholedate;

然后在我的Javascript上我刚刚将jsonData分配给google visual:

  

var data = new google.visualization.DataTable(jsonData);

现在它起作用至少,因此我仍然不知道这些代码是否存在缺点..

enter image description here