1

因此,在我的 php 脚本中,我将当前时间 (date()) 与 mysql 数据库中的时间进行比较,但它不起作用。我该怎么做呢?PHP

if($row['Datum'] < date(Y-m-d-H-i-s)) { Code to execute}

mysql日期时间

2012-11-13 17:00:00
4

5 回答 5

1

您可以将其添加到 SQL 查询中吗?

SELECT * FROM tablename WHERE Datum < now();
于 2012-11-14T08:54:49.623 回答
1

您当前的代码有语法错误,但它非常接近可以工作的东西:

if ($row['Datum'] < date('Y-m-d H:i:s')) {
    // Code to execute
}

这很可能在循环内,因此您应该缓存以下输出date()

$now = date('Y-m-d H:i:s');

// loop here
foreach ($rows as $row) {
    if ($row['Datum'] < $now) {
        // code to execute
    }
}

您也可以直接在查询中进行比较:

$now = date('Y-m-d H:i:s');
$db->query("SELECT * FROM whatever WHERE Datum < '$now'");
于 2012-11-14T09:01:04.977 回答
0

如果您的日期与 ISO 8601 格式匹配:“YYYY-MM-DD HH:II:SS”,则可以使用strtotime函数将字符串转换为 Unix 时间戳。

于 2012-11-14T08:56:15.903 回答
0

mysql日期格式是

$date = new DateTime();
$date = $date->format('Y-m-d H:i:s');

if ( $row['Datum'] < $date) { Code to execute }
于 2012-11-14T08:52:00.870 回答
0

首先,您的 php 调用中日期的格式错误,mysql 日期的格式为"Y-m-d H:i:s"。其次,您不需要这样做。您可以改为使用以下内容:

if(strtotime($row['Datum']) < time()) { // Code to execute }

这会将 mysql 日期转换为时间戳,并将其与当前时间戳进行比较。

于 2012-11-14T08:53:36.047 回答