Как присвоить строке дату?

Есть переменная $birthday Как сделать так, чтобы этой переменной можно было передавать только строку в формате "год-месяц-день"


Ответы (1 шт):

Автор решения: Вадим Александру

Создаем класс

class MySuperDateClass
{
    private $date;

    public function setDate($date)
    {
        if (preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/",$date)) {
            $this->date = $date;
        } else {
            throw new InvalidArgumentException("invalid date format");
        }
    }


}

Создаем его экземпляр и пробуем присвоить дату

$myClass = new MySuperDateClass();

try {
    $myClass->setDate('1996-11-29');
    echo 'Success';
} catch (InvalidArgumentException $exception) {
    echo $exception->getMessage();
}
→ Ссылка