Задать вопрос
@DreHows

Как сравнить день (дата +24 часа)на php?

Добрый день!
Подскажите, пожалуйста, как реализовать функционал.
Требуется.
Получить текущую дату в формате, к примеру, ЧАС-МИНУТА-ДЕНЬ-МЕСЯЦ-ГОД, прибавить к этой дате ровно 24 часа (эта строка будет писаться в БД).
Далее нужно произвести проверку: если текущая дата больше полученной из базы, вернуть false.

Заранее спасибо!
  • Вопрос задан
  • 2376 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 7
evgeniy2194
@evgeniy2194
PHP, js developer
$time = time() + 24*60*60;
echo date("H:i d.m.Y", $time);
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
DateTime::diff или DateInterval::format или если нужно РОВНО 24 часа, и плевать на всякие часовые пояса, переводы времени и високосные секунды то старым дедовским способом
$_24h = 24 * 60 * 60;
    $date = date('H-i-d-m-Y', time() + $_24h);
Ответ написан
Комментировать
Dreamka
@Dreamka
Web-разработчик.
Как то так
function some_dates(){
    $date_from_base = get_date_from_base();
    $date = date("U", time()+86400);
    if ($date > $date_from_base) return fasle;
}
Ответ написан
Комментировать
Kozack
@Kozack
Thinking about a11y
Дополню немного ответ Алексей Царапкин :
Суть в том, чтобы привести обе даты к timestamp и сравнивать их как числа.
Имеется в виду, что get_date_from_base() так же возвращает Количество секунд, прошедших с начала Эпохи Unix.

Как заметил Эдик намного лучше было бы держать в БД дату не в виде строк а в виде чисел - меток времени. Так вы сможете отслеживать изменения в дате с точностью до секунды.
Ответ написан
Комментировать
Writerim
@Writerim
Заполнить позже...
$a = new DateTime();
$a->modify('+1 day');

$b = new DateTime();
$b->setTimestamp( /* value database */ );

var_dump( $a->getTimestamp() > $b->getTimestamp()  );
Ответ написан
@lnked
используйте timestamp с ним проще будет
Ответ написан
Комментировать
@DreHows Автор вопроса
Удалось разобраться с Вашей помощью!
Всем большое спасибо!

$_24h = 24 * 60 * 60;
$date_max = date('H-i-d-m-Y', time() + $_24h);
$date_cur=date('H-i-d-m-Y', time());
if($date_cur>=$date_max)
	{
		echo 'Задача просрочена!';
	}
	else
	{
		echo 'Задача выполнена вовремя!';
	}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы