使用strtotime问题比较两个日期,那一年已经改变了

时间:2013-01-16 21:13:35

标签: php timestamp strtotime

您好我有这个代码

if  ((date('m/d/Y' , $row->dates)) <= (date('m/d/Y', strtotime("-3 day"))) )

基本的想法是,我从我的数据库中提取一个日期($ row-&gt; date),看看今天的日期是否比数据库中的日期还要多3天。

这对于2012年至2013年的日期非常有效。它现在总是达到包含2012年的拉日期的其他条件,现在2013日期工作完美。

存储在数据库中的日期采用unix时间戳形式,即1351141261。

在比较两个日期时,我无法弄清楚我在哪里出错了。显然,年度部分有些事情搞砸了。有人可以帮忙吗?

3 个答案:

答案 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按字典顺序比较字符串。)