Autor Zpráva
Mozkomor05
Profil
Dobrý den, v počítadle mám návštěvy za den a týden. Avšak tyto údaje nejsou pravdivé. Místo aby se v týdnu zobrazovaly návštěvy za týden zobrazují se návštěvy za posledních sedm dnů, to samé i ve dnech. Mohli byste mi poradit jak mám udělat, aby to vždy bylo od pondělí do neděle a od 0:00 do 23:59? Děkuji. Kód je příliš dlouhý a má několik souborů, takže si jej můžete stáhnout a prohlédnout zde.
úsměv
Profil
asi si zapisovat i datum prihlaseni a pak ho porovnavat s tim ktery je ted --date(j.n.Y G:i:s) = den.mesi.rok hodiny:minuty:vteriny. Zdroj: www.pehapko.cz/zakladni-kurz/10-podminky
ps: pokud ti nekdo nabizi jine reseni (ktere funguje), ber ho. Mluvi ze mne zkusenost.
Mozkomor05
Profil
Díky za radu, ale nevím jak to mám udělat.
juriad
Profil
Mozkomor05:
Zaprvé, neukládej datum v databázi jako INT, ale jako DATETIME. To ti pak umožní provádět pokročilejší statistiky.

Ten výpočet s *86400 nahraď za:
strtotime("midnight - $dnu day")
Při použití DATETIME:
date("Y-m-d H:i:s", strtotime("midnight - $dnu day"))

Pozor! Toto změní sémantiku argumentu $dnu. Hodnota znamená, kolik celých předchozích dnů spolu s aktuálním chceš spočítat. Za dnešek bude $dnu = 0 za týden bude $dnu = 6.
juriad
Profil
Ještě dodám relevantní část ze zdrojáku:
    public function uipDnu($dnu)
    {
        $vysledek = Databaze::dotaz('
            SELECT COUNT(DISTINCT `ip`) AS `pocet`
            FROM `zobrazeni`
            WHERE `datum` > ?
        ', array(time() - $dnu * 86400));
        $data = $vysledek->fetch();
        return $data['pocet'];
    }
Mozkomor05
Profil
Jo super funguje. Díky

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: