我如何解决调用未定义的方法DateTime :: diff()?

时间:2016-01-19 11:26:46

标签: php date time

$today= new DateTime(date('Y-m-d'));
$dob= new DateTime($user_dob);
$diff = $today->diff($dob);
return $diff->y .' Year';

我正在尝试计算年龄,但显示错误Call to undefined method DateTime::diff()我该如何解决这个问题?我正在使用PHP版本5.4.24

3 个答案:

答案 0 :(得分:1)

这适用于PHP 5.3.4PHP 5.2.11

$start = new DateTime('2010-10-12');
$end = new DateTime();
$days = round(($end->format('U') - $start->format('U')) / (60*60*24));

答案 1 :(得分:0)

php5中的内部对象在失败时可以在__construct中返回null。您可以查看:

if (null !== $today) {
    $diff = $today->diff($dob);
    return $diff->y .' Year';
}

date('Y-m-d')返回的值也有助于理解方法失败的原因

答案 2 :(得分:0)

答案中有一个不错的选择来计算日期。 但是为了正确计算,请使用“ floor”代替“ round”

$start = new DateTime('2020-06-20');
$end = new DateTime();
$days = floor(($end->format('U') - $start->format('U')) / (60*60*24));

系统不允许我发表评论