Autor Zpráva
cheli
Profil
Zdravím, vytvořil sem si skript na odpočet času (viz níže), ale přál bych si, aby odpočet nešel do mínusu, ale zastavil se na hodnotách 00:00:00. Možná tam mam nějakou chybu. Zkoušel jsem tam vytvořit podmínku, že když hodiny,minuty,vteřiny budou v mínusu, tak je objeví nuly, ale minuty se zobrazují pořád v plusu. Nejspíš bych měl mít na výpočet minut jiný vzorec, ale nevím jaký. Předem dík za radu.

<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
var hod = h*60*60;
var min = m*60;

var konec_hod = 9;
var konec_min = 55;
var konec_sek = 0;

konec_in_sec = (konec_hod*60*60) + konec_min*60 + konec_sek;
akt_in_sec = hod + min + s;

rozdil = konec_in_sec - akt_in_sec;
rozdil_hod = Math.floor((rozdil/60)/60);
rozdil_min = Math.floor((rozdil/60)-(rozdil_hod*60));
rozdil_sek = rozdil-(rozdil_hod*60*60)-(rozdil_min*60);
// add a zero in front of numbers<10
h=checkTime(rozdil_hod);
m=checkTime(rozdil_min);
s=checkTime(rozdil_sek);


document.getElementById('txt').innerHTML=h+":"+m+":"+s;
t=setTimeout('startTime()',500);
}

function checkTime(i)
{
if (i<10)
  {
  i="0" + i;
  }
return i;
}

</script>
</head>

<body onload="startTime()">
<div id="txt"></div>
</body>
</html>
Joker
Profil
cheli:
Prostě za řádek 20 přidejte podmínku, že pokud rozdil < 0, vyplní se nuly a funkce skončí (return) - čímž se nebude dělat celý ten zbytek (který už stejně nemá smysl) a ani se už nenastaví další timeout (což taky nemá smysl)

Perlička: Jakkoli to může být překvapující, správný český formát výpisu času je 00.00:00 (mezi hodinami a minutami je tečka)
cheli
Profil
Joker:
Díky moc, příště budu snad ještě víc myslet. Vždycky mam představu nějakýho složitějšího postupu a přehlídnu jednoduchý, ale učinný věci. Ještě jednou dík
peta
Profil
cheli:
jen tak ke scriptu... Pokud to pouzivas jednou, budiz. pokud vickrat, udelal bych si na to objekt s parametry. zbytecne tam prepocitavas neustale cas konce.

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