<?php
header('Content-Type: application/json; charset=utf-8');
$db = pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=blabla");
$result = pg_query($db,"SELECT kv.ph, kv.date FROM public.kv ORDER BY date DESC LIMIT 5");
$return = array();
while ($row = pg_fetch_array($result)) {
$test = $row[1];
$date = DateTime::createFromFormat('y-m-d', $test);
$formatdate = date('Y, m, d',$date);
$return[] = array((int)$row[0],"Date($formatdate)");
}
pg_close($db);
echo $data=json_encode($return);
?>
我需要回声如下:
[[6,“日期(2017年,10月5日)”,[9,“日期(2017年,9月30日)”],......]
我明白了:
[[6,“Date(1970,001,01)”],[9,“Date(1970,001,01)”],...]
我很少被困在这里,请帮忙。 postgres中的数据类型是日期。 2017年10月28日
答案 0 :(得分:1)
date()
函数中第二个参数出错。那必须是int但是对象DateTime给出。
在date_format()
行中使用date()
代替$formatdate = date('Y, m, d',$date);
。
所以你的代码可以是:
$formatdate = date_format($date, 'Y, m, d');
或
$formatdate = $date->format('Y, m, d');
答案 1 :(得分:1)
1st,DateTime :: createFromFormat返回Datetime objext
第二,我认为,从db你收到4位数的年份,所以你需要使用格式Y
$date = DateTime::createFromFormat('Y-m-d', '2017-10-05');
echo $date->format('Y, m, d'); .. 2017, 10, 05