если дата php через 24 часа после сохраненной даты mysql - PullRequest
1 голос
/ 06 июля 2010

Я пытаюсь сделать функцию, которая будет проверять дату php относительно того, что находится в базе данных. Если текущая дата (ГГГГ-ММ-ДД ЧЧ: ММ: СС) наступает через 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 на 24 часа или более отставать от $ now ..

Ответы [ 2 ]

7 голосов
/ 06 июля 2010

Вы можете использовать strtotime вместо математики даты. Лично я думаю, что это читается намного лучше.

if (strtotime($item->date) <= strtotime('-1 day')) {
  // date is more than or equal to 24 hours old
}
3 голосов
/ 06 июля 2010
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
  };
};

Обратите внимание, что если сохраненная дата не находится в том же часовом поясе, что и сервер, вам нужно будет связываться с часовыми поясами - см. здесь для начала.Я храню даты и время в MySQL как метки времени Unix, чтобы избежать некоторых из этих проблем.Я знаю, что это не очень хорошая практика с базами данных, но тогда PHP все равно хранит время как метки времени Unix.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...