Странное поведение DateTime в проверке даты в php 5.4 - PullRequest
0 голосов
/ 10 мая 2019

Я написал простой кусок кода, чтобы проверить формат даты.Формат даты в моем случае: d / m / y

Список тестов, которые я успешно выполняю

10/12/2019 ДАТА OK

aa / 12 /2019 ДАТА КО

10-12-2019 ДАТА КО

Но есть один случай, который меня удивляет:

32/12/2019 ДАТА ОК

Почему это происходит?Нужно ли добавлять элементы управления для диапазона дней и месяцев?

$value = '32-12-2019';
$checkDate = \DateTime::createFromFormat('d/m/Y', $value);
if ($checkDate) {
    print("DATE OK");
} else {
    print("DATE KO");
}

1 Ответ

0 голосов
/ 10 июня 2019

Я использую

public static function validateDate($date, $format = 'Y-m-d')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) === $date;
}

Проверяет правильность даты и требуемый формат

...