Autor | Zpráva | ||
---|---|---|---|
leorond Profil |
#1 · Zasláno: 23. 2. 2016, 14:53:48
Ahoj, mám takový jeden dotaz který se týká Opakovaného odpočtu času a hlášky
Mám takovíto script var vterina = 1000; var minuta = vterina * 60; var hodina = minuta * 60; var den = hodina * 24; var rok = den * 365.24219; var slova = { roku: ["rok", "roky", "let"], dnu: ["den", "dny", "dnů"], hodin: ["hodina", "hodiny", "hodin"], minut: ["minuta", "minuty", "minut"], vterin: ["vteřina", "vteřiny", "vteřin"] }; function sklonovani(pocet, co) { if (pocet == 1) return slova[co][0]; if (pocet < 5 && pocet > 0) return slova[co][1]; return slova[co][2]; } function odpocet(el) { var konec = new Date(el.getAttribute("data-konec")); var ted = new Date(); var rozdil = konec - ted; if (rozdil < vterina) { el.innerHTML = el.getAttribute("data-hlaska"); return; } var zbyva = { roku: Math.floor(rozdil / rok), dnu: Math.floor(rozdil % rok / den), hodin: Math.floor((rozdil % den) / hodina), minut: Math.floor((rozdil % hodina) / minuta), vterin: Math.floor((rozdil % minuta) / vterina) } var vypis = el.getAttribute("data-zbyva"); for (co in zbyva) { var pocet = zbyva[co]; if (pocet > 0) vypis += " " + pocet + " " + sklonovani(pocet, co); } el.innerHTML = vypis; setTimeout(function() { odpocet(el); }, vterina); } <p id="odpocet" data-konec="02/23/2016 14:46:30" data-hlaska="Čas vypršel!" data-zbyva="Do odpočtu zbývá:"></p> <script> odpocet(document.getElementById('odpocet')); </script> Je to script který mi odpočítá čas a napíše hlášku "Čas vypršel". Já bych ho potřeboval upravit tak aby se za odpočítávaným časem pokud bude zbývat 5 minut ukázal text a zároveň aby po dokončení odpočtu se celý cyklus sám obnovil. Vím že je potřeba udělat jen několik podmínek ale jsem v tom začátečník a potřeboval bych v tom poradit. děkuji |
||
leorond Profil |
Tak jsem si o tom něco přečetl a zkusil jsem to sám. Vznikl mi script který funguje dobře ale někde tam mám asi chybu a nemohu jí najít.
Po uplynutí 55 minut v XX:25 se vypíše místo času OPEN a po uplynutí zbývajících 5 minut se resetuje čas. Ovšem po resetování času se neukáže čas který se ukázat má, má se ukázat odpočet 54 minut a 59 sekund ale zobrazí se 90 minut a po obnovení stránky se to srovná na správný čas. Můj nový script <span><? echo bc_start;?>: </span> <span id=bctime> <script type="text/javascript"> var acum = new Date(); var minutes = acum.getMinutes(); var seconds = acum.getSeconds(); bcstart = minutes * 60 + seconds; if (minutes > 30) doin = 3600 - bcstart; else doin = -bcstart; bc = doin + 25*60; function bceventtime() { bc = bc - 1; if (bc < -5*60) { bc = 3600 + 30*60; bc = bc-1; } min = Math.floor(bc/60); sec = bc%60; if (min < 0) { document.getElementById("bctime").innerHTML = "<? echo open; ?>"; } else { if (min < 10) min = "0"+min; if (sec < 10) sec = "0"+sec; document.getElementById("bctime").innerHTML = min+":"+sec; } window.setTimeout("bceventtime()",1000); } bceventtime(); </script> </span> Mohl by mi někdo pomoci toto napravit? Poradit kde dělám chybu? Děkuji |
||
Časová prodleva: 9 let
|
0