【发布时间】:2014-11-10 23:42:50
【问题描述】:
我需要创建一个 PHP 脚本,它从数据库(日志、消息、登录等)中提取各种内容的时间戳,并在它们超过 X 天时将其删除。我不善于花时间完成工作,并且对最好的方法感到困惑。
我意识到我可以使用 explode() 将字符串中的日/月/年分开,并将它们与一堆 If 语句进行比较,但我想使用更有效的方法。像以下这样的正确方法是正确的吗?
$dt = "2011-03-19 10:05:44";
//if $dt is older than 90 days
if((time()-(60*24*90)) > strtotime($dt))
{
}
从 time() 中减去(分钟*小时*天)还是数字有误?
【问题讨论】:
-
你可以运行
delete from foo where your_time < (NOW() - INTERVAL X DAYS) -
这是一个不错的选择,尽管它比我的示例更深入一些,因此在这种情况下在 PHP 中使用 DT 可能更适合。
-
好吧,我可以回答您发布的内容,而不是猜测您遗漏了什么
-
您确定 NOW() - DAYS 有效吗?我刚刚尝试 SELECT * FROM
tbladminlogWHERE logintime > (NOW() - 5) 提取过去 5 天的记录,它只返回今天的记录。 -
啊,这是“DAY”而不是“DAYS”。谢谢,我想我也会用这个:)
标签: php datetime time timestamp unix-timestamp