Faker\Provider\ro_RO\Person::getDateOfBirth PHP Méthode

getDateOfBirth() protected méthode

protected getDateOfBirth ( $dateOfBirth ) : DateTime
$dateOfBirth
Résultat DateTime
    protected function getDateOfBirth($dateOfBirth)
    {
        if (empty($dateOfBirth)) {
            $dateOfBirthParts = array(static::numberBetween(1800, 2099));
        } else {
            $dateOfBirthParts = explode('-', $dateOfBirth);
        }
        $baseDate = \Faker\Provider\DateTime::dateTimeBetween("first day of {$dateOfBirthParts[0]}", "last day of {$dateOfBirthParts[0]}");
        switch (count($dateOfBirthParts)) {
            case 1:
                $dateOfBirthParts[] = $baseDate->format('m');
                //don't break, we need the day also
            //don't break, we need the day also
            case 2:
                $dateOfBirthParts[] = $baseDate->format('d');
                //don't break, next line will
            //don't break, next line will
            case 3:
                break;
            default:
                throw new \InvalidArgumentException("Invalid date of birth - must be null or in the 'Y-m-d', 'Y-m', 'Y' format");
        }
        if ($dateOfBirthParts[0] < 1800 || $dateOfBirthParts[0] > 2099) {
            throw new \InvalidArgumentException("Invalid date of birth - year must be between 1900 and 2099, '{$dateOfBirthParts[0]}' received");
        }
        $dateOfBirthFinal = implode('-', $dateOfBirthParts);
        $date = \DateTime::createFromFormat('Y-m-d', $dateOfBirthFinal);
        //a full (invalid) date might have been supplied, check if it converts
        if ($date->format('Y-m-d') !== $dateOfBirthFinal) {
            throw new \InvalidArgumentException("Invalid date of birth - '{$date->format('Y-m-d')}' generated based on '{$dateOfBirth}' received");
        }
        return $date;
    }