Почему я получаю этот объект класса DateTime не может быть преобразован в строковую ошибку?

Я видел этот код здесь при переполнении стека

    function add($date_str, ${
$date = new DateTime($date_str);
$start_day = $date->format('j');

$date->modify("+{$months} month");
$end_day = $date->format('j');

if ($start_day != $end_day)
$date->modify('last day of last month');

return $date;
}

$result = add('2011-01-28', 1);  // 2011-02-28
$result = add('2011-01-31', 3);  // 2011-04-30

Который увеличивает дату, но не превышает последний день месяца. Но когда я пытаюсь запустить функцию, используя

$dues=add('2011-01-28', 1); echo $dues;

Возвращает ошибку «Объект класса DateTime не может быть преобразован в строку»? Но похоже, что это работает для других людей.

Оригинальная ссылка

-1

Решение

Первая строка вашего кода должна быть:

function add($date_str, $months) {

У вас там синтаксическая ошибка.

0

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

Формат функции не правильный. Используйте код ниже

function add($date_str, $months){
$date = new DateTime($date_str);
$start_day = $date->format('j');

$date->modify("+{$months} month");
$end_day = $date->format('j');

if ($start_day != $end_day)
$date->modify('last day of last month');

return $date;
}

$result = add('2011-01-28', 1);  // 2011-02-28
$result = add('2011-01-31', 3);  // 2011-04-30

Надеюсь, это поможет вам

0

Все, что мне нужно было сделать, это использовать $dues->format('Y-m-d')

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