将数据库中的时间与当前时间进行比较

时间:2014-06-15 06:43:58

标签: php mysql

我有一个显示用户个人资料的页面。该配置文件将显示游戏中的所有当前投注,但在游戏开始后仅45分钟。我将体育游戏导入数据库,并将其存储为日期时间字段。我需要将服务器上的当前时间与开始时间进行比较,如果是45分钟则显示数据。如果不是,我不想显示数据。这就是我所做的。

<?php $today = date("Y-m-d"); ?>

<?php $newTime = strtotime('-45 minutes'); $time = date('Y-m-d H:i:s', $newTime); echo $time; ?>

<div class="row" style="padding-left: 20px; padding-right: 20px;">

  <h4>Todays Bets</h4>
  <p>User Bets will display 45 minutes after game start time and display for the day.<?php $date = date('Y-m-d H:i', time()); echo $date; ?></p>



  <?php foreach ($conn->query("SELECT * FROM game_data INNER JOIN user_betting ON game_data.id=user_betting.game_id WHERE user_betting.handicapper_id=$uid AND DATE(date) = '$today' AND DATE(date) < DATE('$time') ORDER BY date ASC") as $bets) { ?>

如你所见,我确实在当前日期前45分钟回应了时间。所以我得到了正确的回声,但是当比赛开始后,我仍然得到了回应。我应该没有游戏。我在这里做错了什么,以确保thisi仅显示当前日期和比赛开始时间后45分钟。

这是the page in action

1 个答案:

答案 0 :(得分:0)

您正在DATE()函数中传递它,该函数将仅返回日期YYYY-MM-DD,请尝试以下

 $sql = "
    SELECT * FROM game_data 
      INNER JOIN user_betting ON game_data.id=user_betting.game_id 
         WHERE user_betting.handicapper_id=$uid 
           AND DATE(date) = '$today' 
           AND date < '$time' ORDER BY date ASC";

 //Query now
 foreach ($conn->query($sql) as $bets) {
    ...
 }

Date()仅检查日期,而不是DATETIME提交的时间部分。