Как да сравня две дати

smoke

Registered
Здравейте опитвам се да сравня две дати обаче не ми се получава:

Код:
        $ip = $_SERVER['REMOTE_ADDR'];
        $select = mysql_query("SELECT * FROM `older_view_users` WHERE `username_of_user` = '".$_GET['vu']."' && `ip` = '".$ip."'");
        $rowselect = mysql_fetch_array($select);
        $next_day = time($rowselect['date']) + (24 * 60 * 60);

        if( date("d.m.Y") > date("d.m.Y", $next_day) )
        {
            echo "sled";
        }

ето като time() на next_day съм го записал така 1294693766
 
правиш си 1 променлива с днескашната дата..

Код:
$neska = date("Y-m-d");//promeni si reda na izkarwaneto kakto isk
 $vchera = $rowselect['reda kadeto zapiswash datata'];

 if($neska >  $vchera+"24* 60 * 60" ){

}
нещо такова... ? то поскоро я кайи какво точно очакваш да изведеш .. ?
 
Надявам се правилно да съм разбрал какво точно правиш. Аз лично бих оставил MySQL да си сравнява датите. Също така работя с тях като с unix времеви печати (timestamp), защото е по-лесно да сравняваш числа.
Тествах този код с идентична таблица и поле date от тип datetime (не знам дали твоето поле е е такъв тип):

Код:
$ip = $_SERVER['REMOTE_ADDR'];
$un=addslashes($_GET['vu']); // по-добре е да се защитиш от инжектиране на код по GET, макар и заявката да не е критично важна.

$select = mysql_query("SELECT date FROM `older_view_users` WHERE `username_of_user`='$un' AND ip='$ip' AND UNIX_TIMESTAMP()>UNIX_TIMESTAMP(date)+86400");
//още тук сравнявам датите. UNIX_TIMESTAMP(date) връща число (секунди от 1.1.1970 до момента, в който потребителят е влизал за последно). Към него добавям 86400 -  секунди в 24 часа (24*3600). И полученото число го сравнявам с текущия брой секунди от 1.1.1970 (UNIX_TIMESTAMP()).

if(count(mysql_fetch_array($select))>0){ //просто преброявам колко реда е върнал MySQL. Ако са повече от нула, всичко в заявката е true.
	echo 'sled';
}

Ето кодът отново, без коментарите, за по-лесно четене/копиране:
Код:
$ip = $_SERVER['REMOTE_ADDR'];
$un=addslashes($_GET['vu']);
$select = mysql_query("SELECT date FROM `older_view_users` WHERE `username_of_user`='$un' AND ip='$ip' AND UNIX_TIMESTAMP()>UNIX_TIMESTAMP(date)+86400");
if(count(mysql_fetch_array($select))>0){
	echo 'sled';
}


Надявам се да съм помогнал :)
 

Back
Горе