我正在尝试执行一项功能,该功能将根据数据库中的内容检查php日期。如果当前日期(YYYY-MM-DD HH:MM:SS)是在存储的数据库日期之后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小时或更长时间..
答案 0 :(得分:7)
您可以使用strtotime
代替日期数学。就个人而言,我觉得它看起来好多了。
if (strtotime($item->date) <= strtotime('-1 day')) {
// date is more than or equal to 24 hours old
}
答案 1 :(得分:3)
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时间戳。