如果php日期是存储mysql日期后24小时

时间:2010-07-06 02:52:59

标签: php date compare

我正在尝试执行一项功能,该功能将根据数据库中的内容检查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小时或更长时间..

2 个答案:

答案 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时间戳。