我正在做一个公共汽车预订系统。这是我的公交时刻表:
在这里你可以看到第1行(route_id = 1)的出发时间是下午12点15分。现在,在我的网站上,第一个表格是选择地点和预订日期。选择日期和地点后,第二个表格将显示可用的公交车。这是我的概念。
现在我选择'科伦坡'和'贾夫那'(根据表格排第一行),日期是2016-06-09。 (今天的日期:2016-06-7,当我选择这个,我的时间是晚上12点20分)在第一个表格。
在第二种形式中,可用的总线没有出现。
我做了一个小验证:
(这里$ booked_date是第一种形式的选择日期,$ off是根据表格的公共汽车时间)
if ($booked_date >= date(“Y-m-d”) && ($departure > date('H:i:s'))) {
// show the bus
}
我的问题是,如果我选择2016-06-07(今天的日期和选择日期的时间是晚上12点20分),公共汽车将不会显示,因为出发时间是12.15pm。时间过去了。所以巴士不会显示。
但是当我选择2016-06-09(今天2天的日期和选择日期的时间是下午12点20分)时,这辆公共汽车必须显示。但这里没有显示。如何设置此验证。
我不想要过去时间的预定巴士。怎么做?
答案 0 :(得分:1)
您当前if
的问题在于,无论$booked_date
是什么,如果$departure
在当前时间之前,它将不会显示总线。你需要单独处理它们。这样的事情可能有用:
$curDate = date('Y-m-d');
if($booked_date > $curDate || ($booked_date == $curDate && $departure > date('H:i:s'))) {
// show the bus
}
答案 1 :(得分:1)
正如@ImClarky指出你的逻辑错了。更好的选择是以秒为单位比较时间:
$curTime = time();
$bookedTime = strtotime($booked_date.' '.$departure);
if($bookedTime > $curTime) {
// show the bus
}