你好,我有这个代码
if ((date('m/d/Y' , $row->dates)) <= (date('m/d/Y', strtotime("-3 day"))) )
基本的想法是,我从我的数据库($row->dates)中提取一个日期,看看今天的日期是否比数据库中的日期提前了3天。
这对于2012年到2013年的日期来说是完美的。对于包含2012的日期,它现在总是满足else条件,并且2013日期现在可以完美地工作。
数据库中存储的日期采用unix时间戳形式,如1351141261。
我不太明白是哪里错了,我比较这两个日期。很明显,在年份部分有什么东西把事情搞砸了。有人能帮忙吗?为什么要将日期转换为字符串?
$row->dates <= strtotime('-3 days')
为什么不使用MySQL的内置函数呢
SELECT randomdate WHERE randomdate >= DATE_ADD(CURDATE(), INTERVAL -3 DAY);
作为时间戳而不是格式化字符串进行比较。
问题是它们不是按最高到最低的顺序排列的。
例如,如果您格式化为Y-m-d
,那么顺序实际上是正确的。
(从技术上讲,PHP按字典顺序比较字符串)