I am beginner webdeveloper. I use in my project Laravel 5.8. I have this this code:
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; }
It’s work fine. But I have problem with date ex 2045-12-12. This function is not working. With year: 2015-12-12 – it’s okey.
How can I repair it?
Advertisement
Answer
I would write your function to return true
or false
depending on if the user is 18 or not.
function is_18($dob) { $dobObject = new DateTime(date("Y-m-d", strtotime($dob))); $nowObject = new DateTime(); return $dobObject < $nowObject ? ($dobObject->diff($nowObject)->y > 18) : false; }
Then your IF
block is simplified to this:
if (!$this->is_18($request->input('date')) { return Redirect::back()->withErrors(['You are a minor. Registration is allowed for adult users']); }