Kako ubaciti kontrolu datuma

Autor erbi, 07. Listopad 2012, 19:29

0 Članovi i 1 Gost pregledava ovu temu.

erbi

Pozdrav!
Moram da prepravim jedan modul u kojem je:
function ipVoted($poll_id) {
$db =& JFactory::getDBO();
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$query = "SELECT ip FROM ".$db->nameQuote('#__acepolls_votes')
."WHERE poll_id=".(int) $poll_id."
************ovdje ide i kontrola datuma *************
AND ip = '".$ip."'"
;
$db->setQuery($query);

return $ipVoted=($db->loadResult()) ? 1 : 0;
}

U ovoj tablici ima date, koji je formata datetime. Sad mi treba nekako ovako:
AND date < now()-24 sati
Kako bi ovo uradio da bi radilo?

Dario

Bez strukture tablice je ovo ko traženje igle u sijenu.... u mraku....
Napravi screenshot ace_polls tablice pa da vidimo dal će to opće ići....
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi


Dario

#3
Eto dakle imaš klasiku za date format u bazi pa bi ti bilo koje od ovih riješenja trebalo poslužit... Da nejdem sad isprobavat po bazi, većina ovih odgovora mi izgleda u redu samo uvijek ima i različitih načina za napisat.

EDIT:
Dakle ovo bi trebalo radit, ali ovak na brzaka tipkam jer gibam dalje, ali mislim da nisam nigdje profulal :)


function ipVoted($poll_id) {
$db =& JFactory::getDBO();
$ip = ip2long($_SERVER['REMOTE_ADDR']);
$query = "SELECT ip FROM ".$db->nameQuote('#__acepolls_votes')
."WHERE poll_id=".(int) $poll_id."
AND date >= SYSDATE() - INTERVAL 1 DAY
AND ip = '".$ip."'"
;
$db->setQuery($query);

return $ipVoted=($db->loadResult()) ? 1 : 0;
}
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu

erbi

Pozdrav Dario!
Hvala za rješenje. Radi, al ima jedna frka. Server radi na UTC, joomla ima u konfiguraciji +2 sata i sad pazi:
Svi moduli prorade po ovom lokalnom vrijemenu, isto se u vjest upiše lokalno vrijeme. ACePoll modul ne radi ovako. On stavlja u tablice UTC, tako da bi kod ovog zadnjeg rješenja bilo glasanje onemogučeno 26 sati. Ja sam sad uradio ovako:
."WHERE poll_id=".(int) $poll_id."
AND timediff(now(), date) < '22:00:00'
AND ip = '".$ip."'"

Dario

Nažalost ne možeš utjecat kako modul radi.... to se događa kad ekstenzije ne koriste Joomline funkcije (za datum ovom slučaju) pa onda moraš i zaobilazit to :(
Uglavnom, bitno da si postigao kaj je trebalo :)
---
Molim da mi ne šaljete privatne poruke sa zahtjevima za pomoć, takve poruke ignoriram - zato služi forum :)
2b || !2b; this.question();
http://www.dblaze.eu