这到底如何?关于堆栈溢出的问题,我想要做的事情有很多。然而所有的解决方案都是编辑MYSQL查询,我需要从PHP内部完成。PHP - 基于时间的数学计算
我在另一个问题上了解了strtotime(' - 30 days')方法并尝试了它,但我无法得到任何结果。这里就是我想:
$current_date = date_create();
$current_date->format('U');
... mysql code ...
$transaction_date = date_create($affiliate['Date']);
$transaction_date->format('U');
if($transaction_date > ($current_date - strtotime('-30 days'))) {
} else if(($transaction_date < (($current_date) - (strtotime('-30 days'))))
&& ($transaction_date > (($current_date) - (strtotime('-60 days'))))) {
}
实际上,我想所有的排序基于日期在数据库中的数据,如果数据库条目已在最近30天发布,我想执行一个函数,然后我想查看数据库条目是否超过30天,但不超过60天,并执行更多操作。
这个时代的数学真的很奇怪,你会认为获得当前时代的纪元,数据输入的时代以及30和60天前的时代将足够做我想做的事情,但由于某种原因,它无法正常工作,即使我将数据库中的日期设置为去年,所有事情都会以不到30天的时间返回。
'date_create(date(...))'完全没有意义。你让PHP从'time()'获取当前时间戳,将其格式化为字符串'date(...)',然后使用date_create将其解析为时间戳/对象。如果你想“现在”,所有你需要的是'date_create()'。 – 2014-11-04 17:54:02
好的,谢谢你提供的信息,但我仍然对数学部分感到困惑。 – Hobbyist 2014-11-04 17:55:11
“我需要从PHP内部完成”?为什么?如果你是MySQL查询,*使用mysql的日期过滤器*来获得你的范围。除非你可以想出一个无法实现的真正可靠原因(并且如果你可以查询mysql,那么你就可以这么做),没有理由试图迫使一个方形钉子通过圆孔。 – 2014-11-04 17:56:52