将DATETIME列日期与PHP中的当前日期进行比较?

时间:2012-05-27 23:24:17

标签: php

我有一个DATETIME列,用于存储以下值:

2012-05-20 14:00:00

如何将$row['Date']中的日期与当前日期(时间不重要)进行比较,看它是否比今天更早?

if($row['Date'] < ...) {
echo 'date has passed'
}

5 个答案:

答案 0 :(得分:7)

为什么不让SQL为你做比较?

SELECT *, DATE(`Date`) < DATE(NOW()) AS is_old ...

然后你有一个名为'is_old'的列,如果日期在今天之前,则为1,如果不是,则为0。因此,在PHP中,您需要做的就是:

if ($row['is_old']) {
    // handle the old date case
} 

答案 1 :(得分:2)

strtotime($row['Date']) < time() + 60 * 60 * 24;

我们将额外的一天(60秒* 60分钟* 24小时)添加到时间()以有效地忽略您请求的小时/分钟/秒

就是这么简单:D你也可以很容易地添加偏移量和东西:

http://www.php.net/manual/en/function.time.php

http://php.net/manual/en/function.strtotime.php

答案 2 :(得分:0)

if( $row['Date'] < date('Y-m-d') ) {
 echo 'date has passed';
}

答案 3 :(得分:0)

正确的方法是将MySQL日期字符串转换为PHP理解时间值的格式:

$date = strtotime( $row['date'] );

然后,您可以将其与当前时间进行比较,

if ( $phpdate < time() ) {
  ...
}

答案 4 :(得分:0)

非常古老的问题,但它仍然可以帮助某人。
SELECT * FROM tbarticle WHERE UNIX_TIMESTAMP(time) > 'UNIX_TIMESTAMP(2018-01-01 21:48:46)'
注意单引号, 时间是列名 我们按照以下方式使用它:
time
将$ urlTime替换为当前日期时间