Autor Zpráva
Honza.P@
Profil
Poradil by mi někdo, jak udělat, aby se to měnilo každou vteřinu?

Z databáze se vytáhnu čas do kterého se má počítat a je ve formátu:
1329743796 // 14:16:36

Vypočitám si čas z db - aktuální čas a ten rozdíl pomocí .append() dám na nějaký div. Potřebuji, aby se to aktualizovalo každou vteřinu.
Když se čas z db === aktuální čas, tak potřebuji, aby se provedl refresh.

Odečtení už bych měl, ale stále nemohu přijít na tu část, která mi zajistí tu změnu každou vteřinu.

Děkuji.
Chamurappi
Profil
Reaguji na Honza.P@:
Použij metodu setInterval.
Honza.P@
Profil
Chamurappi:
Díky to je ono, ale asi to dělám nějak špatně, jelikož to sekne jak IE, tak FF

$(function time(){

    $("#countdown").empty();

    $("#countdown").append((new Date()).getTime() -(-$("#countdown").attr("data-time")));

    setInterval(time, 1000);

});
_es
Profil
Honza.P@:
Asi si si poriadne neprečítal, čo funkcia setInterval robí.

Místo updatu se tam ten čas znovu připíše.
Dokumentáciu jQuery nepoznáš?
Nepotrebuješ jQuery, stačí innerHTML.
Honza.P@
Profil
_es:
Samozřejmě, že znám. Dokonce jsem to vyřešil a editnul, ale to už si asi psal. Jenže se sekne prohlížeč.

A ted jsem zjistil další problém.

<?php time(); ?> !== <script>(new Date()).getTime()/1000</script>

Takže to asi tahle vůbec nepůjde použít :/
_es
Profil
Honza.P@:
Dokonce jsem to vyřešil a editnul
Prečo robiť niečo jednoducho, keď to ide zložito...

Jenže se sekne prohlížeč.
Po určitom čase, že? Naozaj si si prečítal, čo funkcia setInterval robí a zamyslel sa, koľko krát ju voláš?
Honza.P@
Profil
_es:
Prečo robiť niečo jednoducho, keď to ide zložito...
Proč někomu poradit, když nemusim. Jednodušší způsob mě nanapadl.
Jinak pokud ti stále jde o jquery, tak to stejněk používám několikrát i jinde.

Po určitom čase, že? Naozaj si si prečítal, čo funkcia setInterval robí a zamyslel sa, koľko krát ju voláš?
Vyřešeno.
setInterval(function time(){
 
    $("#countdown").empty();
 
    $("#countdown").append((new Date()).getTime() -(-$("#countdown").attr("data-time")));
 
}, 1000);
_es
Profil
Honza.P@:
Jinak pokud ti stále jde o jquery, tak to stejněk používám několikrát i jinde.
JQuery má predsa aj iné metódy, aj keď na daný účel to jQuery nijako nezjednodušuje.
Chamurappi
Profil
Reaguji na Honzu.P@:
Proč bereš čas pokaždé z atributu?
Co když mám v systému špatně nastavený čas? Rozcházení v řádu sekund je docela běžné…
Když už používáš jQuery, proč empty a append, proč ne html?
Honza.P@
Profil
Chamurappi:
V tom atributu je čas z db, u kterého bylo něco odečteno a jiné zas přičteno.
Například se bude odpočítávat 5 minut, jinde zas 2 hodiny ....
html() mě nenapadlo. Děkuji.
Honza.P@
Profil
Moc děkuji za pomoc, všem :)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0