使用一个简单的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来订购它们呢?
您可以在sql查询中简单地执行此操作。
$sql = mysqli_query($mysqli, "SELECT TIMEDIFF(deadline, CURRENT_TIME) as date_diff FROM tasks ORDER BY TIMEDIFF(deadline, CURRENT_TIME)");
可以在mysql
和ORDER BY
中执行此减号操作。这是你应该做的,
$sql = mysqli_query($mysqli, "SELECT * FROM tasks ORDER BY (deadline-UNIX_TIMESTAMP())") DESC;
我们已经使用UNIX_TIMESTAMP()来获取当前时间戳并从截止日期中扣除它。
在查询结束时,我们使用了DESC
关键字,它将按天数降序排序结果