ту в одной теме увидел сравнение двух дат который как стринг добавлены! решил сам поэксперементировать: PHP: $dmin='2007-05-17'; $dmax='2007-05-18'; Echo "<pre>",var_dump($dmin),var_dump($dmax),"</pre>"; if($dmin<$dmax){echo "сработало</br>\r\n";}else{echo "НЕ сработало</br>\r\n";} $dmin_=(int)$dmin; $dmax_=(int)$dmax; Echo "<pre>",var_dump($dmin_),var_dump($dmax_),"</pre>"; if($dmin_<$dmax_){echo "сработало</br>\r\n";}else{echo "НЕ сработало</br>\r\n";} $dmin_=strtotime($dmin); $dmax_=strtotime($dmax); Echo "<pre>",var_dump($dmin_),var_dump($dmax_),"</pre>"; if($dmin_<$dmax_){echo "сработало</br>\r\n";}else{echo "НЕ сработало</br>\r\n";} так вот - я непонял как проходит первое сравнение?! вроде же должно было к инту привестись ... аля вариант два ... но срабатывает как третий! почему ?
armadillo и? вот результат работы данного кода: HTML: string(10) "2007-05-17" string(10) "2007-05-18" сработало int(2007) int(2007) НЕ сработало int(1179345600) int(1179432000) сработало
armadillo дык .... я же как раз и написал код дабы посмотреть что и к чему ... (строки 6,7 и результат на приведенных данных строка 7) то-есть, не помогло!
dark-demon можно подробнее? я тя непонял ... я как раз спрашиваю по каким правилам происходит сравнение? все что я нашел на эту тему в цитате выше ....
dark-demon - издеваешся ? Петр - я привел код в первом посте ... в третьем его результат ... я спрашивал не то как это надо сделать ... а почему !
dark-demon,Петр - и все таки?! то что торможу - возможно ... и так ... я всегда сам приводил типы (особенно при датах) в пхп3 распарсивал, в 4 уже функциями преобразовывал ... что делаю и сейчас, но тут на форуме увидел сравнение без приведения типов ... удивился попробовал ... результат ошарашил ... в мануале ничего не нашел (кроме выше приведенной фразы) ... все знакомые до сих пор преобразовывают даные... вот интересуюсь у вас ... откровенно говоря ни тон ответов, ни форма, ни содержание пока не радуют! (насчет !== и === все ясно ... и никаких вопросов, но вот вопросы по поводу > и < остались... неужели ПХП5 сам распознает иприводит типы или побайтовое сравнение, ну не нашел я никакой инфы на эту тему!)
PHP: <?php $dmin = '05-09'; $dmax = '06-09'; function str_ord($str) { $str_ord = ''; for ($i = 0; $i < strlen($str); $i++) { $str_ord .= ord($str{$i}); } return $str_ord; } print str_ord($dmin) . ' - ' . str_ord($dmax) . ' = ' . (str_ord($dmin) - str_ord($dmax)); ?> Посмотри результат работы при разных значениях дня и месяца.
nimistar, и что тебя смущает в том, что даты записанные в этой (и исключительно этой) форме можно сравнивать как строки? специально для этого такой кривой формат и придумали...
Sergey89 - супер ... это я и спрашивал! dark-demon - нет меня вообще смущало сравнение стриногов, на больше и меньше! (никак немогу найти правила по этому поводу)
nimistar там все просто. сравнение от первого до последнего символа попарно из первой и второй строки у какой строки ASCII-код символа будет меньше кода символа соответствующей позиции второй строки та строка и меньше. так же сравнение может быть регистронезависимым с соответствующим возвращением равенства двух сиволов разного регистра
nimistar если даты указаны в формате ГГГГ-ММ-ЧЧ, то по правилам сравнивания строк "2006-02-12" будет меньше "2006-10-30", что, по моему мнению, абсолютно логично. данная техника работает и в пхп 4 и в пхп 3 и не требует абсолютно никакого приведения дат. именно поэтому формат, выбранный для хранения дат в мускуле такой удобный.
stas_t - следствия понятны! я спрашивал только правилах сравнения! .... в принципе, то что он сравнивает даты ... я увидел ... было интересно более точное описание действия! за что спасибо Ganzal и Sergey89! в принципе для закрытия топика нехватает только ссылки на эти правил (то что искал и не нашел!) ;-)