Autor Zpráva
Eflyax
Profil
Ahoj, nemůžu vyřešit následující problém.

Do textového pole se mi zapíše nějáká číselná hodnota, například 3567 -> což je počet sekund.
Potřebuji v javascriptu vytvořit aktuální čas, přičíst k němu počet sekund (3567) a odpočítávat ve formátu H:M:S, kolik ještě zbývá času.

Takže pokud ve 12:00 bude v textové poli 420 (7 minut). Bude se mi odpočítávat: 0:06:59
Už si s tím vůbec nevim rady :-(
Eflyax
Profil
[#1] Eflyax

Už jsem to vyřešil - nepotřebuji pomoc :)
Keeehi
Profil
Eflyax:
Pro budoucí generace by bylo pěkné napsat jak jsi to vlastně vyřešil.
Eflyax
Profil
Vyřešil jsem to následujícím způsobem:

PHP mi vygeneruje textové pole a vloží do něj počet sekund. Při načtení stránky se mi v javascriptu spustí následující funkce:

function odpočet() 
{
i = document.prace.odpocitejcas.value; // do proměnné "i" se nastaví počet sekund z textového pole 

setInterval("if(i == 0 || i <0) {window.location.href='##odkaz##'}; if(i != 0){ i = i -1};" ,1000); 
// pomocí "setInterval" se každou sekundu sníží "i" dekrementuje (pokud se nerovná nule), pokud je rovné nule nebo záporné, proběhne přesměrování

setInterval("h = Math.floor((i/60)/60); m = Math.floor((i/60)%60); s = (i % 60) % 60; document.getElementById('odpocet').innerHTML = h+'<b>:</b>'+m+'<b>:</b>'+s; " ,1000); 
//v tomto intervalu se každou sekundu vezme hodota "i" a rozdělí se na hodiny, minuty a sekundy -> které se postupně odpočítavají

}


Možná to šlo vyřešit i jiným způsobem ale tohle mi naprosto vyhovuje. Chtěl jsem halvně, aby se odpočítávání nemohlo ovlivnit přetočením času na uživatelovo PC - samozřejmě i kdyby se mu to nějak povedlo, mám to přes PHP ohlídané.
_es
Profil
Eflyax:
Používaš nevhodné programovacie techniky (1 a 2)
Eflyax
Profil
_es:
Ano děkuji, opravím si to :-)

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:

0