It seems that you are trying to compare two dates as strings. This might work if the strings were in this format:
YYYY-mm-dd HH:mm:ss
However you have them in a format such as:
Monday, January 1 2003 12:34 PM
You don't even have seconds in there...
You could use the strtotime() function in PHP, however, you could just also modify your query a bit, you could add a WHERE statement where it only selects the row if the tagitdate is more than 30 seconds old...
eg:
SELECT * FROM tagit WHERE tagitip = '$ip' AND tagitdate > (NOW() - INTERVAL 30 SECOND)
That would pull any tagit row where the ip is the same and the tagitdate is less than 30 seconds old. If there is a row that matches that criteria, they are trying to flood...
This will only work if your tagitdate field is a TIMESTAMP field or a DATETIME field. You can't just store a date as a string in the database...
Hope that helps.
-Percy