powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проверка правильности даты
13 сообщений из 13, страница 1 из 1
Проверка правильности даты
    #38093917
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Банальная проверка правильности даты, но уже сломала моск!

Есть строка '2012-04-11' (yyyy-mm-dd). Надо проверить правильная ли дата. пробовала checkdate() не определяет. пробовала сначала экслодить а потом приводить к целому типу и опять чек дэйт - пишет неправильная дата.
Что неправильно? подскажите пожалуйста.
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38093949
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
$date = '2012-04-11';
if (date('Y-m-d', strtotime($date)) == $date) {
print 'date ok';
}


хотя коряво как то) Нов роде должно работтаь.
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38093951
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kattka,

checkdate так работает
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
  /* Эти данные могут прийти, например, из отправленной формы */
  $day = 31;
  $month = 6;
  $year = 2012;
  if (checkdate($month, $day, $year)) echo "Дата корректная";
  else echo "Дата некорректная";
  echo "
";
  $day = 31;
  $month = 7;
  $year = 2012;
  if (checkdate($month, $day, $year)) echo "Дата корректная";
  else echo "Дата некорректная";
?>
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38093960
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kattka,

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<?php 

$date_format = 'Y-m-d';
 $input = '2009-03-03';
 
$input = trim($input);
 $time = strtotime($input);
 
$is_valid = date($date_format, $time) == $input;
 
print "Valid? ".($is_valid ? 'yes' : 'no');
 
?> 



или
Код: php
1.
2.
3.
4.
5.
6.
7.
function checkDateTime($data) {
     if (date('Y-m-d H:i:s', strtotime($data)) == $data) {
         return true;
     } else {
         return false;
     }
 } 


примеры
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094541
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за примеры, но они не работают.

Если дата 2012-11-08, все ок. если только в месяце есть "0" (2012-08-11) не работает =((
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094543
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да вы што)
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094544
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите код хоть...
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094553
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такс, отдельно в скрипте все работает (приношу свои извинения). Но когда ставишь в код основного скрипта (добавляешь в иф) выдает неправильно. Буду лопатить основной код. Всем спасибо! И еще раз извините.
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094591
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И все таки не понимаю, почему не работает =(

Есть строка
Код: php
1.
10010010010;Test;T;2012-08-12;5;I;NMPST;MSQ;5555555555

которая эксплодится в массив $cur_str.
Вот код проверки в ифе (проверяются первые 5 параметров)

Код: php
1.
if ( (isset($cur_str[0])) and (isset($cur_str[1])) and (isset($cur_str[2])) and (isset($cur_str[3])) and (isset($cur_str[4])) and (preg_match("/^[0-9]{0,11}$/",$cur_str[0])) and (preg_match("/^[a-zA-Z]{1,30}$/",$cur_str[1])) and (preg_match("/^[a-zA-Z]{1,1}$/",$cur_str[2]))and (preg_match("/^[0-9]{1,4}[-][0-3]{1,2}[-][0-9]{1,2}$/",$cur_str[3])) and (date('Y-m-d', strtotime($cur_str[3])) == $cur_str[3]) and (preg_match("/^[0-9]{1,7}$/",$cur_str[4])) )



Вроде все проверки проходит, но идет по ложной ветке =(( Не понимаю почему
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094599
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВсЁ! нашла ошибку. вместо [0-9] в регулярке стояло [0-3] =))
А так все работает!
Всем спасибо за помощь! ;-)
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094603
trew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kattka,

Уже проверяли переменные через print_r ?
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094606
kattka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все проверялось, все ок. просто в одном месте неправильная регулярка была. А так все работает =))
...
Рейтинг: 0 / 0
Проверка правильности даты
    #38094951
phpz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kattka,

А зачем столько isset-ов, когда есть count() ?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Проверка правильности даты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]