Чтобы узнать, является ли $ recordDate более свежим, чем час назад, вместо того, чтобы сравнивать его с текущей датой, вам нужно сравнить его с DateTime, который соответствует нашему прошлому.
Вы захотите что-то вроде этого:
if ($recordDate >= $oneHourAgo) {
// do something
}
Если вы используете PHP> = 5.3 , вы можете использовать метод DateTime::sub
, чтобы вычесть один час из вашего $nowDate
DateTime.
Например, сначала получить текущую дату:
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);
А затем вычтите один час:
$oneHourAgo->sub(DateInterval::createFromDateString('1 hour'));
var_dump($oneHourAgo);
И вот результат, который я получаю:
object(DateTime)[1]
public 'date' => string '2011-02-25 21:03:32' (length=19)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Paris' (length=12)
object(DateTime)[1]
public 'date' => string '2011-02-25 20:03:32' (length=19)
public 'timezone_type' => int 3
public 'timezone' => string 'Europe/Paris' (length=12)
При работе с PHP 5.2 вам необходимо использовать DateTime::modify
.
Здесь тоже сначала создадим текущую дату:
$oneHourAgo = new DateTime();
var_dump($oneHourAgo);
И затем измените его:
$oneHourAgo->modify('-1 hour');
var_dump($oneHourAgo);
Конечно, это даст вам точно такой же вывод, как и первое решение; -)