Как проверить дату солнечной хиджры (SH) в Php/Laravel

У меня есть поле дня рождения в моей форме. И тип - это строка даты (выбранная средством выбора даты). Я подтверждаю этот запрос

'birthday'=>'required|date_format:"d/m/Y"|after:"01-01-1396"',

Но в календаре солнечной хиджры у нас есть дата, например, 31.06.1396, и валидатор говорит, что не соответствует д/м/г, и это говорит правду.

Теперь, как я могу проверить дату солнечной хиджры (SH)?

В календаре солнечной хиджры (SH) первые шесть месяцев имеют 31 день, следующие пять - 30 дней, а последний месяц - 29 дней в обычные годы и 30 дней в високосные.


person amin saffar    schedule 20.09.2017    source источник
comment
вы пробовали, я думаю, вы форматируете неправильно, это должно быть d/m/Y   -  person User97798    schedule 20.09.2017
comment
Хорошо, я редактирую свой вопрос, я пишу здесь неправильно, моя главная проблема за месяц, например, 6, у которых 31 день.   -  person amin saffar    schedule 20.09.2017


Ответы (1)


Я использую это регулярное выражение сейчас, но это не проверка високосных лет, и все 12 месяцев могут быть 30

ЭТО для г/м/д

'birthday'=>['required' ,'regex:/^\d{4}[\/\-]((0?[1-6])[\/\-](0?[1-9]|[12][0-9]|3[01])|(0?[7-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|30))$/']
person amin saffar    schedule 20.09.2017
comment
вы можете использовать это 'date'=>'required|regex:/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/' - person Ajay Kumar; 21.09.2017
comment
почему вы получаете даты в формате Jalali или Hijri от клиента? это странно для меня. мы всегда получаем григорианский и переводим все даты на григорианский. - person saber tabatabaee yazdi; 12.08.2020
comment
@sabertabaeeeyazdi В этом проекте мы определяем в API для обработки даты на сайте сервера, но абсолютно точно мы можем преобразовать дату ввода в клиенте в григорианский, а затем отправить на сервер. - person amin saffar; 12.08.2020