Получить дату от трех с половиной месяцев назад
Я знаю, что могу сделать
$threemonthsago = date("Y-m-d", strtotime("-3 month"));
echo "$threemonthsago";
Однако я хочу получить 3,5 месяца назад, а не три месяца назад. Так я пытался сделать
$threemonthsago = date("Y-m-d", strtotime("-3.5 month"));
echo "$threemonthsago";
Однако, похоже, он не дает мне правильную дату, как, например, сентябрь, чего не должно быть с апреля текущего года.
2 ответа
Десятичная дробь скидывает strtotime()
поскольку это недопустимый формат, он распознает. Реальная проблема у вас в том, что именно половина месяца? Если вы пройдете февраль, то получится очень рискованно.
Это несколько проще сделать с помощью DateTime()
а также DateInterval()
если точно указать, что такое половина месяца:
$date = new DateTime();
$new_date = $date->sub(new DateInterval('P3M15D'));
echo $new_date->format('Y-m-d');