что такое корректная дата
Самый простой способ проверить валидность даты?
Нужно проверить валидность даты (30 февраля считать невалидным, учитывать високосный год 29 февраля)
Оценить 2 комментария
Решения нет. Можно только создать дату разными способами и получить в разном виде. Валидации нет.
Так что за ответ низачот.
@azrail_dev: читать можно что угодно. И написать что угодно. Мне нужен «самый простой способ».
Сложных способов у самого по проектам понапихано хоть попой кушай.
Во первых на воод даты нужно поставить селектор даты. Это реально поможет пользоватеям вводить дату без ошибок.
При вводе данных рукой нужно сделать фильтр на ввод данных что бы в другом формате было нельзя ввести. Использовать что то типа маски ввода. Есть готовые скрипты маски ввода.
Если нужно проверить то тебе нужно проверить строку а не дату. Можно проверить регуляркой. 30 февраля это валидная дата. Так как это 1е или 2е марта в реале. Например как ты получишь какой день последний в феврале? Ты введшь 0 марта. Это будет последний день ферраля не важно 28 или 29 дней в месяце.
Так что технология проверки дат, лежит в основном в технологии ввода даты.
Не важно как попадает дата в селектор, задача стоит проверить её валидность с заданными условиями. Вопрос кошерных регулярок и прочих способов отсеять неверные символы здесь не обсуждается.
30 февраля невалидная дата, по изначальному условию. Не важно как эту проблему решает какой-либо код (пусть это даже конструктор даты в языке). Важно что в ТЗ стоит задача что 30 февраля ввести нельзя =) Мало того, 29 февраля в невисокосный год тоже является невалидной датой.
Так что ответ не соответствует поставленной задаче.
@Serhioromano: ну собственно сейчас я везде так и делаю. Сравниваю дни, недели и год из созданной даты с тем что передавалось в конструктор.
Но я этот вопрос задал чтобы найти самый простой путь. А то это решение некрасивое какое-то.
@murzix можно посмотреть ваш код как вы это исполнили? Потому что можно сделать прототип для объекта строки и будет что то вроде.
Что значит корректная дата
checkdate — Проверяет корректность даты по григорианскому календарю
Описание
Проверяет корректность даты по переданным аргументам. Дата считается корректной, если все параметры принимают допустимые значения.
Список параметров
Месяц. Принимает значения от 1 до 12 включительно.
Год. Принимает значения от 1 до 32767 включительно.
Возвращаемые значения
Примеры
Пример #1 Пример использования функции checkdate()
Результат выполнения данного примера:
Смотрите также
Очень часто при работе с датами требуется соблюдать их формат. Это может пригодиться в БД, где даты обычно сохраняются в строгом формате Y-m-d или при передачи команды через API какого-нибудь сервиса.
Самым понятным для человека считается формат даты: дд.мм.гггг – date(«d.m.Y»). Давайте сделаем форму, в которой пользователь вводит в свободном порядке дату своего рождения, а с помощью php скрипта мы проверим, насколько правильно он это сделал:
Теперь создадим событие, которое будет получать данные из формы (поле dates) и проверять его:
Из подробных комментариев к коду, я думаю вы поняли принцип проверки даты. Но все равно объясню некоторые моменты.
Посмотрите примеры тестов дат на корректность:
20.10.2003 => корректно
20.10.2003 => корректно
20.12.2204 => корректно
20.12.2 0 04 => корректно (20.12.2004)
20.15.2004 => не корректно (не существует 15 месяца)
202.12.2004 => не корректно (не бывает 202 дня в месяце)
Уважаемая Наталья, к сожалению, на сайте существовала проблема с отображением выпадающих списков значений. В настоящее время данная проблема устранена.
Чтобы ввести дату рождения, необходимо выбрать день, месяц и год, используя выпадающее меню.
Приносим Вам извинения за доставленные неудобства.
С уважением, служба поддержки.
Ввела дату рождения 19/09/1979 – написано некорректная дата, ввела 19.09.1979 – тоже некорректная.
Уважаемая Виктория, чтобы ввести дату рождения, необходимо выбрать день, месяц и год, используя выпадающее меню.
Если данное меню не появилось у Вас при регистрации, пожалуйста, воспользуйтесь другим браузером при регистрации а так же сообщите нам, в каком браузере возникла ошибка. Мы направим проблему техническим специалистам.
Что значит корректная дата
checkdate — Проверяет корректность даты по григорианскому календарю
Описание
Проверяет корректность даты по переданным аргументам. Дата считается корректной, если все параметры принимают допустимые значения.
Список параметров
Месяц. Принимает значения от 1 до 12 включительно.
Год. Принимает значения от 1 до 32767 включительно.
Возвращаемые значения
Примеры
Пример #1 Пример использования функции checkdate()
Результат выполнения данного примера:
Смотрите также
Очень часто при работе с датами требуется соблюдать их формат. Это может пригодиться в БД, где даты обычно сохраняются в строгом формате Y-m-d или при передачи команды через API какого-нибудь сервиса.
Самым понятным для человека считается формат даты: дд.мм.гггг — date(«d.m.Y»). Давайте сделаем форму, в которой пользователь вводит в свободном порядке дату своего рождения, а с помощью php скрипта мы проверим, насколько правильно он это сделал:
Теперь создадим событие, которое будет получать данные из формы (поле dates) и проверять его:
Из подробных комментариев к коду, я думаю вы поняли принцип проверки даты. Но все равно объясню некоторые моменты.
Посмотрите примеры тестов дат на корректность:
20.10.2003 => корректно
20.10.2003 => корректно
20.12.2204 => корректно
20.12.2 0 04 => корректно (20.12.2004)
20.15.2004 => не корректно (не существует 15 месяца)
202.12.2004 => не корректно (не бывает 202 дня в месяце)
Уважаемая Наталья, к сожалению, на сайте существовала проблема с отображением выпадающих списков значений. В настоящее время данная проблема устранена.
Чтобы ввести дату рождения, необходимо выбрать день, месяц и год, используя выпадающее меню.
Приносим Вам извинения за доставленные неудобства.
С уважением, служба поддержки.
Ввела дату рождения 19/09/1979 — написано некорректная дата, ввела 19.09.1979 — тоже некорректная.
Уважаемая Виктория, чтобы ввести дату рождения, необходимо выбрать день, месяц и год, используя выпадающее меню.
Если данное меню не появилось у Вас при регистрации, пожалуйста, воспользуйтесь другим браузером при регистрации а так же сообщите нам, в каком браузере возникла ошибка. Мы направим проблему техническим специалистам.
Что означает формат ДД.ММ.ГГГГ?
Как и где правильно пишется в документах дата?
Давайте более подробно рассмотрим, что такое формат ДД.ММ.ГГГГ (ДД. ММ. ГГи ММ.ГГ), каким законом регламентируется, где применяется и в каких вариантах пишется?
В статье 2 п.3 Федерального закона РФ от 3 июня 2011 г. N 107-ФЗ «Об исчислении времени» понятие календарной даты определено так:
То есть, с помощью формата указывается требование по заполнению календарной даты в составляемом документе, либо дату выдачи или окончания срока действия по документу, либо дату оплаты определённого документа. Данные наборы форматов календарной даты применяются и в банковском деле, например, при заполнении платёжного документа, при заполнении заявки на кредит, в подписываемых договорах и на банковских картах.
А где ещё пишется дата в определённом формате? В одном из приведённых форматов (ДД. ММ. ГГ; ДД ММ; ДД.ММ.ГГГГ или ММ.ГГ) могут обозначаться требования по заполнению даты рождения человека в различных документах (в т.ч. в паспорте), в различных докладах, запросах и заявлениях и бланках.
Если посмотреть бланк, то станет понятным, что в нём по формату дата заполняется несколько раз, а именно: дата выдачи паспорта по формату ДД.ММ.ГГГГ ; дата рождения гражданина по формату ДД.ММ.ГГГГ ;дата выдачи миграционной карты и даты срока пребывания в стране (формат любой)
В бланке применён формат ДД.ММ.ГГГГ при заполнении даты выдачи паспорта, кроме того в любом из форматов заполняются: дата доставки извещения; дата получения корреспонденции.
Комментарии и отзывы отсутствуют. Комментировать!
Форум о госзакупках и тендерах Good-tender
Главная Решение вопросов заказчиков по 44-ФЗ «Пожалуйста, введите корректную дату» при выборе периода отчетности
Чтобы начать, вы должны Войти или Зарегистрироваться
Тема: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Подскажите пожалуйста! Выбираю период отчетности, а мне в ответ «Пожалуйста, введите корректную дату». Хотя период тот, за который хочу сдать отчет. Что делать?
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Слишком мало инфы даёте, что за отчёт?
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Та же история.Это отчет по договорам по 223-фз.Выбираю период сентябрь 2016, пишет «Введите корректную дату».
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Отчет по договорам по 223-фз
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Хм. Я вчера без проблем опубликовался.
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
У вас скорее всего версия эксплорера 8, мне в техподдержке сказали что должна быть версия не ниже 9.
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
А мне уже сказали, что не ниже 10. Но на Windows XP, эта версия не ставится. Пришлось экстренно искать 10 Windows и с Internet Explorer 11 выкладывать отчет.
Re: «Пожалуйста, введите корректную дату» при выборе периода отчетности
Спасибо.Сегодня разместили отчеты. Действительно, проблема в старой версии эксплорера(была 8).Установили 11 версию на Windows7