为什么我得到这个类的对象DateTime无法转换为字符串错误


Why am I getting this Object of class DateTime could not be converted to string error?

我在堆栈溢出上看到了这段代码

    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的对象无法转换为字符串"错误?但它似乎对其他人有效。

原始链接

代码的第一行必须是:

function add($date_str, $months) {

你有语法错误。

函数格式不对。使用下方的代码

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

希望这能帮助您

我所要做的就是使用$dues->format('Y-m-d')