0

嗨,我有这个代码

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

基本思想是我从我的数据库中提取一个日期($row->dates),看看今天的日期是否比数据库中的日期晚了 3 天以上。

这对于 2012 年直到 2013 年的日期非常有效。对于包含 2012 年的拉取日期,它现在始终满足 else 条件,并且 2013 年日期现在可以完美运行。

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

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

4

3 回答 3

2

为什么要将日期转换为字符串?

$row->dates <= strtotime('-3 days')
于 2013-01-16T21:15:03.493 回答
2

为什么不使用 MySQL 的内置函数来做到这一点

SELECT randomdate WHERE randomdate >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
于 2013-01-16T21:16:31.743 回答
1

比较为时间戳而不是格式化字符串。

问题是它们的数量级不是从高到低。

例如,如果您格式化为Y-m-d,则顺序实际上是正确的。

(从技术上讲,PHP 按字典顺序比较字符串。)

于 2013-01-16T21:15:11.043 回答