您好我有这个代码
if ((date('m/d/Y' , $row->dates)) <= (date('m/d/Y', strtotime("-3 day"))) )
基本的想法是,我从我的数据库中提取一个日期($ row-&gt; date),看看今天的日期是否比数据库中的日期还要多3天。
这对于2012年至2013年的日期非常有效。它现在总是达到包含2012年的拉日期的其他条件,现在2013日期工作完美。
存储在数据库中的日期采用unix时间戳形式,即1351141261。
在比较两个日期时,我无法弄清楚我在哪里出错了。显然,年度部分有些事情搞砸了。有人可以帮忙吗?
答案 0 :(得分:2)
为什么要将日期转换为字符串?
$row->dates <= strtotime('-3 days')
答案 1 :(得分:2)
为什么不使用MySQL的内置函数来做到这一点
SELECT randomdate WHERE randomdate >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
答案 2 :(得分:1)
比较时间戳而不是格式化字符串。
问题在于它们不是从最高到最低的顺序。
例如,如果格式为Y-m-d
,则订单实际上是正确的。
(从技术上讲,PHP按字典顺序比较字符串。)