如果php日期是存储mysql日期后的24小时
问题描述:
我试图做一个函数,将检查数据库中的什么是php日期。如果当前日期(YYYY-MM-DD HH:MM:SS)在存储的数据库日期之后24小时,则它将继续,否则它将不执行任何操作。如果php日期是存储mysql日期后的24小时
以下是我正在努力得到它的工作,但不是100%确定如何:
$now = date("Y-m-d H:i:s");
foreach($results as $item) {
if ( /*item date is 24 hours or more earlier than $now*/) { /* this is what I'm not sure how to do */
//do something
} else {
//do nothing
};
};
如果有人可以帮助我得到这个工作,我会非常感激。我只是不知道如何将$ item-> date与$ now进行比较,看看$ item-> date是否在$ now后面24小时或更长。
答
foreach($results as $item) {
if (time() >= strtotime($item['date']) + 86400) {
// current time is 86400 (seconds in one day) or more greater than stored time
} else {
//do nothing
};
};
注意,如果所保存的日期是不是在同一个时区的服务器,您需要惹时区 - 看here对于初学者。
请注意,我将日期和时间存储在MySQL中作为Unix时间戳,以避免这些问题中的一些。我知道这不是很好的数据库练习,但是PHP无论如何都把时间存储为Unix时间戳。
答
您可以使用strtotime
代替日期数学。我个人认为它读得好多了。
if (strtotime($item->date) <= strtotime('-1 day')) {
// date is more than or equal to 24 hours old
}
如果$ item-> date是格式为“YYYY-MM-DD HH:MM:SS”的字符串,那么a thomasrutter 2010-07-06 02:57:06
你是对的。你需要'strtotime($ item-> date)'。我更新了我的代码。 – 2010-07-06 03:03:55