首页 > 解决方案 > 检查用户出生日期为 18 岁或以上的功能并不总是正常工作

问题描述

我是初学者网络开发人员。我在我的项目中使用 Laravel 5.8。我有这个代码:

if ($this->calcutateAge($request->input('date')) < 18) {
            return Redirect::back()->withErrors(['You are a minor. Registration is allowed for adult users']);
        }

function calcutateAge($dob)
    {

        $dob = date("Y-m-d", strtotime($dob));

        $dobObject = new DateTime($dob);
        $nowObject = new DateTime();

        $diff = $dobObject->diff($nowObject);

        return $diff->y;

    }

它工作正常。但我对日期前 2045-12-12 有疑问。此功能不起作用。年份:2015-12-12 - 没关系。

我该如何修复它?

标签: phplaravel

解决方案


我建议你应该使用碳。

use Carbon\Carbon;

function calcutateAge($dob){
      return \Carbon::parse($dob)->age;
}

推荐阅读