我正在尝试用10分钟前的日期时间来计算行数,但是它的当前时间似乎提前1小时因此Imm得到0结果,如果我进入我的表并向前放置一些字段一个小时后我得到了结果。
获得结果:
$stmt = $db->query('SELECT check_log FROM members WHERE check_log >= DATE_SUB(NOW(), INTERVAL 10 MINUTE)');
$row_count = $stmt->rowCount();
echo $row_count.' Members online.';
键入字段的日期时间是2013-07-11 16:54:12而且我没有结果但是如果我手动将日期时间更改为2013-07-11 17:54:12我得到1个结果,使用以下时间输入日期时间:
$date = date("Y-m-d H:i:s");
17:54:12是我当地的时间,16:54:12似乎是我的服务器时间,我的比较试图展望未来还是以当地时间作为参考?
答案 0 :(得分:2)
PHP和MySQL不同意当前的时区。
将所需的时间作为文字从PHP传递到SQL,而不是使用NOW()
。
答案 1 :(得分:0)
始终在php的时区存储日期时间。
您可以特别使用的一项功能是strtotime。
$now = strtotime("now"); // current timestamp
$hour_later = strtotime("+1 hour"); // hour later
$now = date("Y-m-d H:i:s", $now);
$hour_later = date("Y-m-d H:i:s", $hour_later);