添加30年迄今为止php

时间:2017-12-31 08:24:36

标签: php date datetime php-7

我想在php中添加30年的日期。它可以在20年内正常工作,但是当用30年代替20年时,它会显示默认日期。像这样1970-01-01。这就是我所做的。

$created_date = '2017-12-30 08:30:27'

$futureDate=date('Y-m-d', strtotime('+30 year', strtotime($created_date)) );

echo $futureDate;

o / p:

1970-01-01

任何想法为什么?

2 个答案:

答案 0 :(得分:4)

32位有一个错误,在2038年之后无法处理日期。

使用DateTime类来代替解决此问题的问题2038.

对于PHP 5.3 +

$date = new DateTime('2017-12-30');
$date->add(new DateInterval('Y30'));
echo $date->format('Y-m-d');

对于PHP 5.2

$date = new DateTime('2017-12-30');
$date->modify('+30 year');
echo $date->format('Y-m-d');

答案 1 :(得分:4)

您可以使用DateTime

<?php

$created_date = '2017-12-30 08:30:27';

$EndDateTime = DateTime::createFromFormat('Y-m-d H:i:s', $created_date);
$EndDateTime->modify('+30 years');
echo $EndDateTime->format('Y-m-d H:i:s');

输出: - https://eval.in/928779