【发布时间】:2013-11-06 10:03:30
【问题描述】:
在 mysql db 中,我在 t1 表中定义了一个时间戳字段 (dateexp)。 对于查询,我只考虑使用时间戳的 Y-m-d 格式来查找记录。使用 curdate() 而不是 now()
SELECT * FROM t1 WHERE dateexp < currdate()
我想用 php 做同样的事情,使用 DateTime 类来查找日期之前的天数 但我不明白我怎么能做到只比较 Y-m-d 格式。
我尝试过这种方式,但我使用的是 Y-m-d H:i:s 格式。
$row['dateexp'] = "2013-11-10 12:00:00";
$d1 = new DateTime();
$d2 = new DateTime($row['dateexp']);
$interval = $d1->diff($d2);
$days = $interval->format('%r%a');
如果只比较 Y-m-d,我怎么能这样做?我尝试使用 DateTime::createFromFormat 但可能是错误的方式..
谢谢
【问题讨论】:
-
请澄清“仅日期”是什么意思。所以你需要只用日期部分创建
DateTime对象吗?或者找出天数的差异(所以时间部分很重要)? -
我想查找格式为 Y-m-d (2013-11-05) 而不是格式为 Y-m-d H:i:s (2103-11-05 11:00:00) 的 2 个日期的差异.小时、分钟和秒会影响结果,具体取决于时间是之前还是之后