如果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 
} 
+0

如果$ item-> date是格式为“YYYY-MM-DD HH:MM:SS”的字符串,那么a thomasrutter 2010-07-06 02:57:06

+0

你是对的。你需要'strtotime($ item-> date)'。我更新了我的代码。 – 2010-07-06 03:03:55