我有一个显示用户个人资料的页面。该配置文件将显示游戏中的所有当前投注,但在游戏开始后仅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分钟。
答案 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
提交的时间部分。