在PHP中比较DATETIME列日期和当前日期?

在PHP中比较DATETIME列日期和当前日期?,php,Php,我有一个DATETIME列,用于存储以下值: 2012-05-20 14:00:00 如何将$row['date']中的日期与当前日期(时间不重要)进行比较,以确定它是否比今天早 if($row['Date'] < ...) { echo 'date has passed' } if($row['Date']

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

2012-05-20 14:00:00

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

if($row['Date'] < ...) {
echo 'date has passed'
}
if($row['Date']<…){
回显“日期已过”
}
strotime($row['Date'])
我们将额外的一天(60秒*60分钟*24小时)添加到time()中,以有效地忽略您请求的小时/分钟/秒

很简单:D你也可以很容易地添加偏移量和其他东西:

if($row['Date']
正确的方法是将MySQL日期字符串转换为PHP理解时间值的格式:

$date = strtotime( $row['date'] );
然后你可以和现在的时间比较一下

if ( $phpdate < time() ) {
  ...
}
if($phpdate
为什么不让SQL为您进行比较

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

这是一个很老的问题,但它仍然可以帮助别人
从t文章中选择*其中UNIX_时间戳(
time
)>“UNIX_时间戳(
2018-01-01 21:48:46
)”

注意单引号, 时间是一个列名。
我们使用它的方式如下:
$sql=“从tbarticle WHERE UNIX\u TIMESTAMP(
time
)>“UNIX\u TIMESTAMP($urlTime)”中选择*

如果$urlTime是
20012-05-20 14:00:00
,则用当前日期时间替换$urlTime。如果忽略时间,则该选项无效。这不考虑要忽略时间的
20012-05-20 14:00:00
。strotime函数在计算中包含秒数,如果你在我更新它以包含strotime之前发布了这个,那么是的-我修正了:DNo,我在之后发布了它。想一想,然后重读这个问题:看看它是否比今天更古老。嗯。。。strottime和time都返回UNIX时间戳,它们都集中在秒上。是因为20012太大了吗?IDK。。。你看到我没有看到的是什么?或者你说的是我忘记包含的日期的大写字母D?你也可以在数据库中进行比较,然后在结果中检查该列。你想从$row['date']变量中删除时间来比较实际的天数。所以:如果(strotime(substr($row['Date'],0,10))SELECT *, DATE(`Date`) < DATE(NOW()) AS is_old ...
if ($row['is_old']) {
    // handle the old date case
}