我正在尝试从MySQL表中获取日期时间值。我像'yyyy-mm-dd hh:mm:ss'
一样存储它,但是当我想使其打印在页面中时,我得到的是'2019-04-01 00:00:00'
或仅'2019-04-01'
。如果我检查数据库,可以看到时间存储正确,但是当我要打印它时,我只会得到零。
if( $stmt = $mysqli->prepare( '
SELECT
estadistica_id,
aprobados,
suspendidos,
pendientes,
envios,
fecha,
curso.curso_id,
identificador_envio,
curso.titulo AS titulo_curso
FROM estadistica
LEFT JOIN curso ON estadistica.curso_id = curso.curso_id
ORDER BY titulo_curso ASC' . $order_by
) ) {
if( true === $stmt->execute() ) {
$stmt->store_result();
$stmt->bind_result(
$estadistica_id,
$aprobados,
$suspendidos,
$pendientes,
$envios,
$fecha,
$curso_id,
$identificador_envio,
$titulo_curso
);
if( ( $num_rows = $stmt->num_rows ) > 0 ) {
while( $stmt->fetch() ) {
echo $fecha;
}
}
$stmt->free_result();
$stmt->close();
}
}
$ fecha打印'2019-04-01'
,仅此而已。我不知道如何打印存储在数据库中的日期和时间。
下面是数据库的屏幕快照,您可以在其中看到日期和时间已正确存储。
我迷路了:(
感谢您的全部帮助;)
答案 0 :(得分:1)
正如R.Smith在他的评论中所说,如果您的列格式为varchar
,它应该可以工作。您必须再有一个。
您可以使用DateTime
(https://www.php.net/manual/en/class.datetime.php)
示例:
$date = new \DateTime($fecha);
echo $date->format('Y-m-d H:i:s');
// => 2019-04-01 18:42:03
答案 1 :(得分:1)
从数据库中获取datetime
值时,默认格式取决于您的客户端。大多数客户端使用MySQL默认格式('YYYY-MM-DD HH24:MI:SS'
),但看起来却不是。
一种解决方案是使用MySQL function DATE_FORMAT()
将日期转换为SQL查询中具有预期格式的字符串:
考虑:
SELECT
estadistica_id,
...,
DATE_FORMAT(fecha, '%Y-%m-%d %H:%i:%s'),
...
FROM estadistica
...