Autor Zpráva
Ruty
Profil
Dobrý den,
s JS moc neumím a potřebuji poradit.

Ve dvou proměnných mám uložené konečné datum a aktuální čas serveru. Odečítaní funguje, jedinný problém je v tom, že mi nefunguje setinterval

Můj výtvor:

<span id="fin"></span>
<script type="text/javascript">
function time_set() {
	var end = <?php echo strtotime('30.1.2011 00:00:00'); ?>;
	var time = <?php echo strtotime(date('d.n.Y H:i:s')); ?>;
	
	var timer = end - time;	
	
	var tsec = Math.floor(timer);
	var tmin = Math.floor(timer/60);
	var thour = Math.floor(timer/60/60);
	var day = Math.floor(timer/24/60/60);	
	var hour = thour - day * 24;
	var min = tmin - thour * 60;
	var sec = tsec - tmin * 60;	
	
	var tt = day +" dní " + hour +" hodin " + (min < 10 ? '0' : '') + min +" minut " + (sec < 10 ? '0' : '') + sec + " sekund";
	document.getElementById('fin').innerHTML = tt;
}
window.setInterval(time_set, 1000);
</script>
_es
Profil
Ruty:
že mi nefunguje setinterval
Ale on (asi) funguje, len pracuje stále s rovnakými hodnotami, teda premenné end a time budú pri každom zavolaní funkcie time_set rovnaké.
Skús sa nad tým trochu viac zamyslieť.
Ruty
Profil
ale proměnná time se přece každou sekundou pomoci setInterval aktualizuje (čili time by měl ukazovat aktuální čas serveru)
_es
Profil
Ruty:
ale proměnná time se přece každou sekundou pomoci setInterval aktualizuje (čili time by měl ukazovat aktuální čas serveru)
Nie.
Ako sa interpret JS v prehliadači dostane k času na serveri, ak už PHP skript dávno skončil?
Ruty
Profil
a jak by se to dalo vyřešit? Ja si s JS moc nerozumím :)
_es
Profil
Ruty:
a jak by se to dalo vyřešit?
Napríklad takto, alebo hľadaj ďalej „odpočet času“ a pod.
Ruty
Profil
na to už jsem se díval, ja potřebuji, aby se do proměnné end uložila hodnota z databáze a každou sekundou se tato hodnota aktualizovala (v DB se bude hodnota měnit)....a odpočítavání času musí běžet podle času na serveru
_es
Profil
Ruty:
ja potřebuji, aby se do proměnné end uložila hodnota z databáze a každou sekundou se tato hodnota aktualizovala (v DB se bude hodnota měnit)
Hodnota v databáze meniť ako, kedy, v závislosti na čom, …?

a odpočítavání času musí běžet podle času na serveru
Môžeš spraviť tak, že počiatočný čas bude čas servera, ku ktorému bude JS pridávať/odpočítavať čas - to sa tu už niekde riešilo, hľadaj.
Ruty
Profil
Hodnota v databáze meniť ako, kedy, v závislosti na čom, …?
asi takhle, znáš třeba bonus.cz nebo inau.cz ? Ja chci vytvořit stený odpočet času jako používají u svých aukcí.....takže ta hodnota v DB se bude měnit podle kliku na tlačítko u aukce (když někdo klikne na tlačítko přihodit, navýší se doba ukončení třeba o 30 sekund) a tento čas se pak zapíše do JS proměnné end

počiatočný čas bude čas servera, ku ktorému bude JS pridávať/odpočítavať čas
to už jsem si vyhledal, s tím bych problém mít neměl ;)
_es
Profil
Ruty:
když někdo klikne
Nejaký iný návštevník, účastniaci sa rovnakej aukcie?
To nebude také jednoduché, budeš sa musieť v nejakom pravidelnom čase dotazovať servera na stav aukcie, plus serverová aplikácia aukcie.
Alebo nepretržité ťahanie dát zo servera, niečo tu bolo vysvetľované…
Ruty
Profil
Nejaký iný návštevník, účastniaci sa rovnakej aukcie?
Přihlášený uživatel, který bude mít zájem o zboží vystavené v aukci

To nebude také jednoduché...
bál jsem se, že tu někdo vysloví AJAX - tomu jsem se chtěl vyhnout.
_es
Profil
Ruty:
Obávam sa, vzhľadom na prvý dotaz a ďalšie reakcie, že vytvorenie a naprogramovanie online systému aukcií je nad tvoje sily.
Ruty
Profil
:) s PHP nemám žádný problém, jedinným problémem bude zmiňovaný odpočet
_es
Profil
Ruty:
jedinným problémem bude zmiňovaný odpočet
To nie je len napísanie nejakého odpočtu, ale vytvorenie komplexnejšej aplikácie v JavaScripte aj v PHP (alebo inom serverovom jazyku) navzájom spolu komunikujúcich.

bál jsem se, že tu někdo vysloví AJAX
AJAX je voči takej komplexnej aplikácii len jednoduchá drobnosť.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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