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

Как проверить старость даты?

Всем привет. Как можно определить старость даты?

Есть такой код:
$date = "01-01-2017";
     
    if($date --- условие ---) {
         echo "Дата старше 6 месяцев";
    } else {
         echo "Дата младше 6 месяцев";
    }


То есть нужно проверить старше ли дата 6 месяцев или нет. Как сделать? Улыбка
  • Вопрос задан
  • 320 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@svetlov97
Относительно текущей даты?
$date = "01-01-2017";
if(strtotime($date) < (time() - (180 * 24 * 60 * 60))){
     echo "Дата старше 6 месяцев";
}else {
     echo "Дата младше 6 месяцев";
}

Если это то что вам нужно то отметьте ответ как правильный для удобства остальных пользователей пожалуйста.
Ответ написан
$today = time();
$moon = mktime(0, 0, 0, 7, 21, 1969);
echo "Люди были на луне ".floor(($today - $moon) / 86400)." дней назад.";

if (floor(($today - $moon) / 30 * 24 * 60 * 60) > 6) {
    echo 'больше 6 месяцев';
}
Ответ написан
NeiroNx
@NeiroNx
Программист
$date = "01-01-2017";
$diff = (new DateTime())->diff(new DateTime($date));     
    if($diff->m >= 6 || $diff->days >= 180) {
         echo "Дата старше 6 месяцев";
    } else {
         echo "Дата младше 6 месяцев";
    }

или так
$date = "01-01-2017";
   if(((new DateTime())->diff(new DateTime($date)))->m >= 6) {
         echo "Дата старше 6 месяцев";
    } else {
         echo "Дата младше 6 месяцев";
    }
но тогда будет меньше года...
Ответ написан
Комментировать
Keanor
@Keanor
Ведущий разработчик
Указанные выше способы работают, если играться с читаемостью то есть еще один вариант:

if (new \DateTime($someDate) < new \DateTime('-6 month')) {
    ///... some
    echo 'Дата "старее" текущей на пол года';
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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