使用 date('d-m-Y',strtotime($row['original_date'])) 更改引导表中日期的顺序



我的代码如下。用于在数据库中保存日期的列类型是 DATE。问题是,如果我$row['appointment_date']表格按顺序显示日期为 YYYY-mm-dd,但如果我date('d-m-Y',strtotime($row['appointment_date']))以我想要的格式显示日期(dd-mm-YYYY),那么顺序会发生变化并按天而不是按月和年顺序显示日期。例如,它显示 02-05-2011、03-03-2011、05-01-2011 等。我也尝试过DateTime::createFromFormat但问题仍然存在。使用默认日期格式,输出thisdefault_date_format。但是使用 d-m-Y 格式,输出是这个without_default_date_format

<?php
$query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY appointment.appointment_date";
$result = mysqli_query($connection, $query);
while($row=mysqli_fetch_array($result)){
?>
<tr>
<td><?php echo date('d-m-Y',strtotime($row['appointment_date'])); ?></td>
<td><?php echo substr($row['appointment_time'],0,5); ?></td>
<td><?php echo $row['type']; ?></td>
<td><?php echo $row['appointment_notes']; ?></td>
</tr>
<?php
}
?>

尝试使用

ORDER BY appointment.appointment_date ASC"; 

ORDER BY appointment.appointment_date DESC"; 

在您的查询中...

如果未指定 ASC 或 DESC 关键字,则默认为 ASC 或升序。

因此,当您使用 yyyy-mm-dd 时,它会按 yyyy 升序,当您使用 dd-mm-yyyy 时,它会按 dd 升序。

所以你的查询应该是

$query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY appointment.appointment_date DESC";

更新:

$query = "SELECT * FROM appointment,users WHERE appointment.user_id=users.user_id AND users.role_id=2 ORDER BY STR_TO_DATE(appointment.appointment_date , '%Y-%m-%d') ASC";

最新更新