Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверка формата даты 
:(
    Опции темы
kid_a
Дата 18.12.2007, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 2.11.2007

Репутация: нет
Всего: нет



Необходимо проверять формат даты. Должен быть - 18.12.2007 00:00 или 18.12.2007 . в таком случае запрос выполняется корректно.

Код

if ($_POST['date_e'.$i]) 
     { 
     $date_e=$_POST['date_e'.$i]; 
     } 
     else
     { 
     $date_e="01.01.1900 00:00"; 
     } 





Дату в БД добавляю в запросе.
Код

... set date_e =convert(datetime,'".$date_e."', 104)


Как проверить, что пользователь ввел неверный формат (допустим, 18/12/07)? 
PM MAIL   Вверх
Ant88
Дата 18.12.2007, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 30.1.2007
Где: г. Самара

Репутация: нет
Всего: 1



Регулярные выражения использовать наверное.
Как то так...
Код

if(eregi("^[0-9]{2}\.[0-9]{2}\.[0-9]{4}$", $date_e)){
 ... // если соответствует шаблону xx.xx.xxxx
}

PM MAIL ICQ   Вверх
Feldmarschall
Дата 18.12.2007, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок
****


Профиль
Группа: Участник
Сообщений: 2641
Регистрация: 11.12.2007

Репутация: 22
Всего: 32



наверное, стоит проверять не только формат, но и валидность даты.
не думаю, что автору подойдет 99 декабря =)
PM   Вверх
skyboy
Дата 18.12.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Feldmarschall @  18.12.2007,  14:00 Найти цитируемый пост)
наверное, стоит проверять не только формат, но и валидность даты.

например, при помощи checkdate
для проверки формата на стороне РНР можно парсить строку по шаблону при помощи strptime и смотреть, не вернет ли функция false.
PM MAIL   Вверх
Anarki
Дата 18.12.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 7
Всего: 11



Если дата проверяется только для корректной вставки в БД(причем пофиг какая дата там была введена, главное чтобы запрос прошел). Тогда например, сделать так, получить unixtimestamp через strtotime, затем это значение подставить в date и указать верный формат... возвращенное строковое значение от date уже вставлять в бд. Конечно не забыть обработать ситуацию когда strtotime вернула -1.

Это сообщение отредактировал(а) Anarki - 18.12.2007, 16:35


--------------------
PM WWW   Вверх
SelenIT
Дата 18.12.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(Anarki @  18.12.2007,  16:34 Найти цитируемый пост)
через strtotime

Для того формата, который нужен, жестоко обломимся. А вот второй вариант skyboя должен сработать.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
kid_a
Дата 19.12.2007, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 2.11.2007

Репутация: нет
Всего: нет



Call to undefined function strptime() . php5.2 windows
PM MAIL   Вверх
skyboy
Дата 19.12.2007, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



очень странно.
Цитата(php.net)

strptime

(PHP 5 >= 5.1.0)

strptime — Parse a time/date generated with strftime()

просто обязано работать.
а попробуй другую версию. вдруг, именно в той сборке были косяки. 
хотя я сильно сомневаюсь, что дело в версии.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1185 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.