将月份添加到日期

时间:2017-03-21 15:02:18

标签: php

我正在尝试构建一个函数来向特定日期添加(或减少)特定的月数。我将日期作为字符串传递,格式为dd/mm/yyyy。在下面的函数中,$d是我传递的日期,例如21/04/2017$quant是我想要增加或减少的月数。

public static function incMonth($d,$quant) {
        $d = date_create_from_format('d/m/Y', $d);
        $newDate = strtotime ( $quant . ' months' , strtotime ( $d ) ) ;
        $result = date('d/m/Y',$newDate);
        return $result;
    }

我正在调用这个函数:

incMonth('21/04/2017','+1');

但我得到了结果31/01/1970!我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

日期时间是一个对象,你应该使用它的函数来进行任何数据的复制。

$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

所以在你的情况下它将是

public static function incMonth($d,$quant) {
        $d = new DateTime($d);
        $interval = new DateInterval('P' . $quant.'M');
        $newDate = $d->add($interval);
        $result = date('d/m/Y',$newDate);
        return $result;
    }