PHP日期从今天到4个月

PHP日期从今天到4个月,php,date,strtotime,Php,Date,Strtotime,有人知道为什么它一直显示日期01-05-70吗 $effectiveDate = strtotime("+4 months", strtotime($effectiveDate)); // returns timestamp echo date('d-m-y',$effectiveDate); // formatted version 我希望它打印今天的日期+4个月。在您的代码中,$effectiveDate包含无效日期。因此strotime()返回unix纪元1970年1月1日 但是如果你只

有人知道为什么它一直显示日期01-05-70吗

$effectiveDate = strtotime("+4 months", strtotime($effectiveDate)); // returns timestamp
echo date('d-m-y',$effectiveDate); // formatted version

我希望它打印今天的日期+4个月。

在您的代码中,
$effectiveDate
包含无效日期。因此
strotime()
返回unix纪元1970年1月1日

但是如果你只想知道四个月后的日期,你根本不需要这个变量

echo date('d-m-y',strtotime('+4 months'));
有人知道为什么它一直显示日期01-05-70吗

$effectiveDate = strtotime("+4 months", strtotime($effectiveDate)); // returns timestamp
echo date('d-m-y',$effectiveDate); // formatted version
$effectiveDate
可能包含无效的时间戳,我更喜欢使用该类,即:

$d1 = DateTime::createFromFormat('d-m-Y', '09-08-2016');
$d1->add(new DateInterval('P4M'));
echo $d1->format('d-m-Y');


太棒了,约翰,非常感谢。你知道我是如何将年份表示为2016年而不是16年的吗?使用大写Y:echo date('d-m-Y',strottime('+4个月');嗨,约翰,太棒了,谢谢。谁会有thunk,一个大写字母Y?
$d1 = DateTime::createFromFormat('d-m-Y', '09-08-2016');
$d1->add(new DateInterval('P4M'));
echo $d1->format('d-m-Y');