Если Вы предпочитаете старый добрый крон, , CRONw является способом пойти.
Supported systems
* Windows 2000 (any version) works
* Windows XP (SP 2) works
* Windows Server 2003 works
* Windows NT 4 (SP 6) should work but not tested
* Windows 3.11, Windows 95,
Windows 98, Windows ME,
Windows XP beneath SP2 not supported by design
if (strtotime("2008-02-16 12:59:57") >= time() - 24 * 60 * 60)
{ /*LESS*/ }
if ((time() - strtotime("2008-02-16 12:59:57")) < 24*60*60) {
// less than 24 hours ago
}
например, через strtotime и time ().
Разница не должна превышать 86400 (секунд в день).
<?php
echo 'now: ', date('Y-m-d H:i:s'), "\n";
foreach( array('2008-02-16 12:59:57', '2009-12-02 13:00:00', '2009-12-02 20:00:00') as $input ) {
$diff = time()-strtotime($input);
echo $input, ' ', $diff, " ", $diff < 86400 ? '+':'-', "\n";
}
печатает
now: 2009-12-03 18:02:29
2008-02-16 12:59:57 56696552 -
2009-12-02 13:00:00 104549 -
2009-12-02 20:00:00 79349 +
только дату / время последнего теста, которые находятся менее чем на 24 часа в прошлом.
Php имеет функцию сравнения между двумя объектами даты и времени , но я не не очень нравится. Это может быть неточно.
Я использую strtotime (), чтобы создать временную метку unix из объекта даты, а затем сравнивать ее с выводом time ().
Просто добавляю еще один ответ, используя относительные даты strtotime
:
$date = '2008-02-16 12:59:57';
if (strtotime("$date +1 day") <= time()) {
// Do something
}
Я думаю, это делает код более читабельным.