使用简单的mysqli_query,我可以从数据库中检索所有任务。每个任务都有一个截止日期。我想计算每个单独任务剩下多少天。完成后,我想根据剩下的日期订购所有任务。我怎样才能做到这一点?我有这么简单的代码来完成所有任务:
$sql = mysqli_query($mysqli, "SELECT * FROM tasks");
while($rows=mysqli_fetch_array($sql,MYSQLI_ASSOC)){
$deadline = $rows['deadline'];
$today = strtotime('now');
$date_diff = $deadline - $today;
echo $date_diff;
}
但我如何通过$ date_diff订购它们?
答案 0 :(得分:1)
您可以在sql查询中执行此操作。
$sql = mysqli_query($mysqli, "SELECT TIMEDIFF(deadline, CURRENT_TIME) as date_diff FROM tasks ORDER BY TIMEDIFF(deadline, CURRENT_TIME)");
答案 1 :(得分:-1)
您可以在mysql
和ORDER BY
执行此减号操作。这是你如何做到的,
$sql = mysqli_query($mysqli, "SELECT * FROM tasks ORDER BY (deadline-UNIX_TIMESTAMP())") DESC;
我们已使用UNIX_TIMESTAMP()获取当前时间戳并从截止日期中扣除。
在查询结束时,我们使用了DESC
关键字,该关键字将按降序排列天数。