0

我正在尝试计算日期时间少于 10 分钟前的行,但与之比较的当前时间似乎提前了 1 小时,所以如果我进入我的表格并将一些字段提前一个小时,我会得到 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 似乎是我的服务器时间,我的比较是试图展望未来还是使用我的当地时间作为参考?

4

2 回答 2

2

PHP 和 MySQL 不同意当前时区。

将所需时间作为文字从 PHP 传递到 SQL,而不是使用NOW().

于 2013-07-11T17:01:24.923 回答
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);
于 2013-07-11T17:05:38.790 回答