Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Recommended Posts

Столкнулся с задачей в которой надо работать с датой рождения клиента.

В Simple создано дополнительное поле Дата рождения, тип поля Дата. В базе полный бардак... куча записей не являющихся датой.

Решил настроить Simple, но оказалось дополнительное поле с типом Дата не позволяет задать маску.
3 часа убил на решение пустяковой задачи ) Конечно можно было добавить метод для проверки даты в API, но мне захотелось сделать без кодинга.

Может кому-то пригодится.


Сначала изменил тип поля на Текст и прописал маску (всё равно все дополнительные поля Simple хранятся в базе как текст)

99.99.9999

Но маска позволяет ввести любые цифры и в базу улетит нечто не являющееся корректной датой.

Включил проверку регулярным выражением на соответствие формату ДД.ММ.ГГГГ и корректности даты с учетом високосных годов

^(((((0[1-9])|(1\d)|(2[0-8]))\.((0[1-9])|(1[0-2])))|((31\.((0[13578])|(1[02])))|((29|30)\.((0[1,3-9])|(1[0-2])))))\.((20[0-9][0-9])|(19[0-9][0-9])))|((29\.02\.(19|20)(([02468][048])|([13579][26]))))$

Вроде всё красиво получилось, но проверка регулярным выражением делает дополнительное поле обязательным (

Вот такая регулярка проверяет введённое значение на соответствие формату ДД.ММ.ГГГГ и позволяет пустое значение.

(^$)|(^(((((0[1-9])|(1\d)|(2[0-8]))\.((0[1-9])|(1[0-2])))|((31\.((0[13578])|(1[02])))|((29|30)\.((0[1,3-9])|(1[0-2])))))\.((20[0-9][0-9])|(19[0-9][0-9])))|((29\.02\.(19|20)(([02468][048])|([13579][26]))))$)

В итоге получилось как надо.

  • +1 3
Надіслати
Поділитися на інших сайтах

скрин бы тож полученного?)

может попросить  @deeman чтоб прикрутил туды даты?
или к примеру три селекта, год, мес дата

Надіслати
Поділитися на інших сайтах


В скрине нет ничего необычного, и прикручивать ничего не надо... всё что я написал реализовано на стандартном функционале Simple.

Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.