如果包含日期已经完成,则打印 - PHP


print if inclusive dates is already done - php

我正在做一个员工休假系统,如果员工的包含休假日期结束,我想输出。这是我的代码:

$count =0;
                $sql = "SELECT * FROM application WHERE inclusive_dates='??'";
                $result=mysql_query($sql);
                while($row=mysql_fetch_array($result)){
                $count +=1;
                $mi =$row['id_no'];
                $mo=$row['fullname'];
                $mu =$row['type_of_leave'];
                $me =$row['inclusive_dates'];

我的 sql 条件是什么,让我知道保存在数据库中的日期已经过去了。例如,保存的日期是 1 月 18 日至 1 月 22 日,当前日期是 1 月 19 日。它将打印日期尚未过去的人的姓名。对不起我的英语

首先,从您的示例中不清楚inclusive_dates包含什么。它是包含开始日期和结束日期的字符串吗?如果您分别存储开始日期和结束日期,可能会更好地工作。

假设数据库列使用 unix 时间戳,最简单的方法是检查time()(当前 unix 时间戳)是否大于休假开始日期且小于休假结束日期。只要您将开始日期保存为午夜 00:00:01 之后,结束日期保存为午夜前一天结束时(例如 23:59:59),那么您应该不会有任何问题。

编辑:

$currentTime = time();
$sql = 'SELECT * FROM table
        WHERE leave_start_time > $currentTime
        AND leave_end_time < $currentTime';