我有一个DATETIME列,用于存储以下值:
2012-05-20 14:00:00
如何将$row['Date']
中的日期与当前日期(时间不重要)进行比较,看它是否比今天更早?
if($row['Date'] < ...) {
echo 'date has passed'
}
答案 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你也可以很容易地添加偏移量和东西:
答案 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替换为当前日期时间