Сравните даты, месячный период + 1 день

Мне нужно сравнить текущую дату с начальной датой. Идея состоит в том, что каждый месяц + 1 день будет возвращаться, как если бы прошел только один месяц. Так что, если начальная дата 2014-10-27, на 2014-11-27 это все еще покажет Менее месяца назад, и на 2014-11-28 это покажет больше месяца назад.

В настоящее время у меня есть:

     $start_datetime = '2014-10-27';
// true if my_date is more than a month ago

if (strtotime($start_datetime) < strtotime('1 month ago')){
echo ("More than a month ago...");
} else {
echo ("Less than a month ago...");
}

-1

Решение

DateTime лучше всего подходит для математики даты в PHP. Объекты DateTime сравнимы, что делает их очень удобочитаемыми.

$start_datetime = new DateTimeImmutable('2014-10-27');
$one_month_ago  = $start_datetime->modify('- 1 month');

if ($start_datetime < $one_month_ago){
echo ("More than a month ago...");
} else {
echo ("Less than a month ago...");
}

Для версий PHP старше 5.5 необходимо клонировать $startDate чтобы это работало:

$start_datetime = new DateTime('2014-10-27');
$one_month_ago  = clone $start_datetime;
$one_month_ago  = $one_month_ago->modify('- 1 month');

if ($start_datetime < $one_month_ago){
echo ("More than a month ago...");
} else {
echo ("Less than a month ago...");
}
5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]