我有一个MySQL数据库,看起来像这样时间戳:如何检测PHP/MySQL中是否已经过了一段时间?
2011-02-23 20:39:49
我怎样才能检测是否自创建该时间戳的一定时间已经过去了。换句话说,如果时间戳创建于2010年2月23日晚上8点39分43秒如何检测自创建此时间戳以来是否完全过去了10天(240小时)?如何在PHP中做到这一点?
我有一个MySQL数据库,看起来像这样时间戳:如何检测PHP/MySQL中是否已经过了一段时间?
2011-02-23 20:39:49
我怎样才能检测是否自创建该时间戳的一定时间已经过去了。换句话说,如果时间戳创建于2010年2月23日晚上8点39分43秒如何检测自创建此时间戳以来是否完全过去了10天(240小时)?如何在PHP中做到这一点?
$isDone = time() - strtotime($row['time']) >= 240 * 3600;
Crikey。我回应了“如何在PHP中执行此操作?”在澄清之前。别紧张。 – 2011-02-25 01:53:18
select id
from foo
where date_field+interval 10 day >NOW()
如果修改右侧日期时间而不是字段,则更好,因为对该字段应用函数意味着其上的索引无法使用。 – 2011-02-25 01:51:31
感谢提示 – 2011-02-25 01:53:41
在SQL为MySQL:
SELECT * FROM mytable WHERE DATE_ADD(date_column, INTERVAL 10 DAY) > NOW()
这个查询就会发现其中date_column包含datetime值10多天到从当前时间的未来的任何行。
SELECT the_timestamp < NOW() - INTERVAL 240 HOUR AS more_than_240_hours_ago FROM table
如果你的意思是10天,你可以使用'INTERVAL 10 DAY'。 – AndreKR 2011-02-25 01:55:21
为什么不在SQL中做,MySQL可以计算出比PHP更好的日期。 – AndreKR 2011-02-25 01:45:20
@AndreKR我猜在MySQL中这样做也不错,只要结果被发送回PHP脚本。而通过“结果”,我的意思是简单的是,它已经10天或没有它没有。 – Jacobson 2011-02-25 01:47:59
你*绝对*想在MySQL中做到这一点。否则你会做什么?选择整个表,将整个表从慢速硬盘读取,将整个表缓存到内存中,通过套接字/管道将整个表发送到PHP,将整个表缓存到那里的内存中,然后遍历每行并比较日期?不,您只需向MySQL询问10天以上的情侣行! – 2011-02-25 01:50:41