我想在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
任何想法为什么?
答案 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