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

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

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

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


То есть нужно проверить старше ли дата 6 месяцев или нет. Как сделать? Улыбка
  • Вопрос задан
  • 330 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 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 'Дата "старее" текущей на пол года';
}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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