2

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

2012-05-20 14:00:00

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

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

5 回答 5

8

为什么不让 SQL 为您进行比较?

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

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

if ($row['is_old']) {
    // handle the old date case
} 
于 2012-05-28T00:12:47.660 回答
1
strtotime($row['Date']) < time() + 60 * 60 * 24;

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

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

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

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

于 2012-05-27T23:28:41.043 回答
0
if( $row['Date'] < date('Y-m-d') ) {
 echo 'date has passed';
}
于 2012-05-27T23:29:52.220 回答
0

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

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

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

if ( $phpdate < time() ) {
  ...
}
于 2012-05-27T23:34:26.553 回答
0

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


$sql="SELECT * FROM tbarticle WHERE UNIX_TIMESTAMP(time) > 'UNIX_TIMESTAMP($urlTime)'";

于 2018-01-06T08:06:45.143 回答