subYears(18); if ($this->isSqlDate($value)) { $d = Carbon::createFromFormat('Y-m-d', $value); if (!$d->lessThanOrEqualTo($MJ)) { $this->error_messages = __("Vous devez ĂȘtre majeur pour vous inscrire."); return false; } } elseif ($this->isFormDate($value)) { $d = Carbon::createFromFormat('d/m/Y', $value); if (!$d->lessThanOrEqualTo($MJ)) { $this->error_messages = __("Vous devez ĂȘtre majeur pour vous inscrire."); return false; } } else { $this->error_messages = __("Erreur sur le champs : date de naissance."); return false; } // Pass. return true; } /** * Get the validation error message. * * @return string */ public function message() { return $this->error_messages; } /** * Check if provided string is formatted for mysql * * @param string $date * @return boolean */ private function isSqlDate(string $date) { if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $date)) { return true; } return false; } /** * Check if provided string is formatted DD/MM/AAAA * * @param string $date * @return boolean */ private function isFormDate(string $date) { if (preg_match("/^(0[1-9]|[1-2][0-9]|3[0-1])\/(0[1-9]|1[0-2])\/[0-9]{4}$/", $date)) { return true; } return false; } }