我非常需要帮助,我需要将我的数据库中的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) ]); });
答案 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)