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

时间:2015-02-14 06:02:22

标签: php html date datetime string-formatting

我在堆栈溢出

上看到了这段代码
    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的对象无法转换为字符串”错误?但它似乎适用于其他人。

Original link

3 个答案:

答案 0 :(得分:0)

代码的第一行必须是:

function add($date_str, $months) {

你有语法错误。

答案 1 :(得分: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

希望这有助于你

答案 2 :(得分:-3)

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