我有一个带有 MySQL 数据库的 PHP 页面,其中有 2 个字段在 MySQL 中使用 TIME
类型。我想使用 MySQL 的 将这两个字段从 24 小时格式
但它不起作用。 (00:00:00)
转换为 12 小时 AM/PM 格式 (00:00 AM)
>DATE_FORMAT('','')
到目前为止,我所做的是创建了第三个和第四个字段,它们也使用 TIME 类型。我将第 1 个和第 2 个字段发送到第 3 个和第 4 个字段,并转换第 3 个和第 4 个字段以保留原始字段。
<?php
//connection statements omitted
$sql="SELECT * FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);
//Sends the original time_in data to the new format_in column.
$sql2="UPDATE $table SET format_in = time_in";
$result2=$mysqli->query($sql2);
$sql3="SELECT DATE_FORMAT(format_in,'%l:%i %p') FROM $table";
$result3=$mysqli->query($sql3);
while($row = $result->fetch_array()){
?>
//other fields omitted
<td><?php echo $row['format_in'];?></td>
//end while loop
<?php } ?>
此代码所做的唯一事情是复制 time_in 列中的所有内容。这是标准的 24 小时格式 00:00:00
。基本上,这段代码没有做任何事情。我在这里做错了什么?
已编辑以显示我的$结果
最佳答案
while($row = $result3->fetch_array()){
而不是
while($row = $result->fetch_array()){
根据我们在评论部分的对话:
改变
$sql="SELECT * FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);
至
$sql="SELECT field_1,field_2,field_n,DATE_FORMAT(format_in,'%l:%i %p') format_in FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);
关于php - MySQL Date_Format 不适用于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13239683/