现在年份已经改变了,使用strtotime问题比较两个日期


Comparing two dates using strtotime issue now that year has changed

你好,我有这个代码

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