我有一个工作的php代码,如下所示,它用mysql数据库中的数据填充数组。它用于生成一个表,作为回报,该表在另一个php文件中用于生成谷歌图表。但我需要使用函数JSdate($in,$type)重新格式化"时间戳"字段中的数据。当涉及到php时,我是一个傻瓜,我该怎么做?我想这应该在你迭代数据库中每个记录的部分完成,而不仅仅是写"时间戳",它应该写JSdate("时间戳,"日期"),但我无法让它工作。对于有更多php经验的人来说,这可能是一个简单的问题;-)
function JSdate($in,$type){
if($type=='date'){
//Dates are patterned 'yyyy-MM-dd'
preg_match('/('d{4})-('d{2})-('d{2})/', $in, $match);
} elseif($type=='datetime'){
//Datetimes are patterned 'yyyy-MM-dd hh:mm:ss'
preg_match('/('d{4})-('d{2})-('d{2})'s('d{2}):('d{2}):('d{2})/', $in, $match);
}
$year = (int) $match[1];
$month = (int) $match[2] - 1; // Month conversion between indexes
$day = (int) $match[3];
if ($type=='date'){
return "Date($year, $month, $day)";
} elseif ($type=='datetime'){
$hours = (int) $match[4];
$minutes = (int) $match[5];
$seconds = (int) $match[6];
return "Date($year, $month, $day, $hours, $minutes, $seconds)";
}
}
try {
$dbname = 'database'; // Add your Database name here
$username = 'XXXXXX'; // Add your Username here
$password = 'XXXXXXX'; // Add your password here
$conn = new PDO("mysql:host=XXXXXXXXX;dbname=$dbname", $username,$password);
echo "Connected successfully";
}catch(PDOException $e){
echo "Connection failed: " . $e->getMessage();
}
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// First section of code is for generating data for Google Charts.
try {
$result = $conn->query('SELECT *
FROM tempdata_ny
WHERE Timestamp > DATE_SUB(NOW(), INTERVAL 1000 HOUR)');
// Create the variables for the Google Chart and define as arrays
$rows = array();
$table = array();
// Define the array labels
$table['cols'] = array(
array('label' => 'Datetime', 'type' => 'string'),
array('label' => 'Temp1', 'type' => 'number'),
array('label' => 'Temp2', 'type' => 'number')
);
// Iterate through each record in the MySQL DB to populate the array
foreach($result as $r) {
$data = array();
$data[] = array('v' => (string) $r['Timestamp']);
$data[] = array('v' => (float) $r['Temp_Sens1']);
$data[] = array('v' => (float) $r['Temp_Sens2']);
// print "<pre>";
// print_r($data);
// print_r($r);
// print "</pre>";
// Insert data array into $rows
$rows[] = array('c' => $data);
}
$table['rows'] = $rows;
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
更改
$data[] = array('v' => (string) $r['Timestamp']);
对于
$data[] = array('v' => (string) JSdate($r['Timestamp'],'datetime'));