两个日期和两次之间的票

时间:2016-05-22 16:01:56

标签: php

我有另一个问题。

我在两个日期和两次之间显示门票时陷入困境。

我有以下表格字段:

开始日期|| ticketSDate,开始时间|| ticketSTime

结束日期|| ticketEDate,结束时间|| ticketETime

我想显示结束日期和结束时间大于或等于现在的所有门票 和 开始日期小于或等于现在

任何人都可以帮助我吗? 谢谢,本尼

            <?php 

                $result = mysqli_query($con,"SELECT * FROM ticket WHERE  ticketEDate >= NOW() AND ticketETime > NOW() AND ticketSDate <= NOW()  ORDER by ticketSDate ASC");
                while($row = mysqli_fetch_array($result, MYSQL_BOTH))  { 



                        echo '<tr>
                                <td><h8>'. $row['ticketName'] .'</h8></td><br>

                                <td><h4><strong>Begin:</strong> &nbsp; ',date("d.m.Y", strtotime ($row['ticketSDate'])),' &nbsp; ', date('H:i', strtotime ($row['ticketSTime'])).' hr.<h4></td>
                                <td><h4><strong>Einde:</strong> &nbsp; ',date("d.m.Y", strtotime ($row['ticketEDate'])),' &nbsp; ', date('H:i', strtotime ($row['ticketETime'])).' hr.<h4></td>
                                <td><h4>'. $row['ticketDescription'] .'</h4></td>
                                <td><h4>'. $row['ticketID'] .'  <input name="book" type="button" value="Koop een ticket" /></h4></td>
                                <br><br>
                            </tr>';
                    }

            ?>

1 个答案:

答案 0 :(得分:1)

这是一个有缺陷的思考time的概念。你在说

  

我想显示结束日期和结束时间更长的所有门票

所以这意味着在今天之后的日期,但时间仍然不是现在的情况,返回错误,这根本不合理。

所以你必须使用一些分组条件。例如,结束日期时间比现在大。

现在如果结束日期大于今天,那么忘记时间就没有意义了。

WHERE ticketEDate > NOW() OR (ticketEDate = NOW() AND ticketETime > NOW())

相同的概念开始。

一个非常简单和更好的解决方案是将日期时间存储为一个字段,然后您的查询非常简单。