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

Compare PHP current timestamp to timestamp in the database

正如标题所说。

从数据库的结果集中,我想要日期和时间 (计划列) 已经过去的那些行。

在我的数据库中

在 PHP 页面上我有:

$now = time();
$result = $mysqli->query("SELECT * FROM schedules WHERE $now >= UNIX_TIMESTAMP(schedule)");

但是,如果我在 2015 年 9 月 19 日 18:50:00 测试它,我根本得不到任何结果,而我应该只得到 ID 为 39 的行。

据我所知,我正在比较两个有效的时间戳 - 一个由 time() 生成的时间戳和一个使用 UNIX_TIMESTAMP() 从数据库转换而来的时间戳 - 那么什么不起作用?

编辑:我已经尝试过 $result = $mysqli->query("SELECT * FROM schedules WHERE NOW() >= schedule");

但没有运气。我得到的结果是

while ($row = $result->fetch_assoc()) {
    $id = $row['ID'];
    echo $id;
}

使用 now() 到 select 行,其中 schedule 是过去的

SELECT * FROM schedules WHERE now() > schedule

它们是不同的,因为, php 时间基于 php 时区设置(在 php.ini 内)。 数据库时间基于您的系统时间(除非您设置了它)。