Jak vytvořit odpočet času
- likeandbruno
- Začátečník

-
- Registrován: 23. srp 2012
- Kontaktovat uživatele:
Jak vytvořit odpočet času
Zdravím potřeboval bych poradit jak vytvořím odpočet času např. další vysílání bude za 2 hodiny, 5 minut a 35 sekund a jak by odpočet skončil tak aby se stránka znovu načetla ale bez toho odpočítávání děkuji za radu.
- PSGYG
- Nováček

- Registrován: 26. bře 2013
Re: Jak vytvořit odpočet času
Cau treba tady mas navod http://www.panickov.esitex.com/clanky/l ... -casu.html jinak staci pouzit google a najde ti toho hafo.... 
- Václav Sedlář
- Žlutá karta Bazar

-
- Registrován: 01. dub 2006
- Bydliště: Liberec
- Kontaktovat uživatele:
Re: Jak vytvořit odpočet času
Nedávno jsem potřeboval vytvořit něco podobného v javasriptu. Mám na to script (viz. níže), který funguje takto (funguje všude krom IE - pokud víte proč, poraďte mi...):
věděl jsem, že teď je 30.3.2013 21:00 a potřebuji odpočet např. 25 minut a poté automaticky odeslat form, tak jsem si ve formu udělal pole, kam jsem vypočetl pomocí PHP aktuální+25minut datum_čas a ten uložil do skrytého pole ve formu. Javasript si vzal výsledný čas a počítal...formát data a času, který si bere následující script musí být takový to: 03 30, 2013, 21:25:30
script:
v html pak byl tento kod pro spuštění odpočtu času (víc druhů spuštění kvůli různý prohlížečům):
a ještě funkce php pro výpočet budoucího času, funkci se předává počet minut:
snad ti to pomůže...
věděl jsem, že teď je 30.3.2013 21:00 a potřebuji odpočet např. 25 minut a poté automaticky odeslat form, tak jsem si ve formu udělal pole, kam jsem vypočetl pomocí PHP aktuální+25minut datum_čas a ten uložil do skrytého pole ve formu. Javasript si vzal výsledný čas a počítal...formát data a času, který si bere následující script musí být takový to: 03 30, 2013, 21:25:30
script:
Kód: Vybrat vše
var timerID = null;
var timerRunning = false;
var timerID = null;
var timerRunning = false;
function showtime() {
var cas = document.getElementById("pom_cas").value;
today = new Date();
Prodej = new Date(cas); /*"feb 22, 2013, 22:20"*/
msPerDay = 24 * 60 * 60 * 1000 ;
timeLeft = (Prodej.getTime() - today.getTime());
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_daysLeft = timeLeft / msPerDay;
daysLeft = Math.floor(e_daysLeft);
e_hrsLeft = (e_daysLeft - daysLeft)*24;
hrsLeft = Math.floor(e_hrsLeft);
minsLeft = Math.floor((e_hrsLeft - hrsLeft)*60);
hrsLeft = hrsLeft;
e_minsLeft = (e_hrsLeft - hrsLeft)*60;
secLeft = Math.floor(e_hrsLeft);
secLeft = Math.floor((e_minsLeft - minsLeft)*60);
secLeft = secLeft;
/*Temp3='Zbývá '+daysLeft+' dní, '+hrsLeft+' hodin, '+minsLeft+' minut, '+secLeft+' sekund.'*/
Temp3='Zbývá '+minsLeft+':'+secLeft;
if(((minsLeft=="0" || minsLeft=="00") && (secLeft=="0" || secLeft=="00"))){
/*ZDE VLOŽ TO CO SE MÁ UDĚLAT AŽ SE ODPOČÍTÁ ČAS NA NULU*/
vyhodnotit();
}
if(secLeft<10){
Temp3=minsLeft+':0'+secLeft;
}else{
Temp3=minsLeft+':'+secLeft;
}
document.getElementById("odpocet_casu").innerHTML=Temp3;
timerID = setTimeout("showtime()",1000);
timerRunning = true;
}
function stopclock () {
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function stopClock() {
stopclock();
return;
}
function startclock () {
stopclock();
showtime();
}
Kód: Vybrat vše
<script>
if(window.addEventListener) {
window.addEventListener("load",function() { startclock(); },false);
}
else if(window.attachEvent) {
window.attachEvent("onload",function() { startclock(); });
}
else {
window.onload=function() { startclock(); };
}
</script>
Kód: Vybrat vše
function datum_cas($cas){
$cas_s=$cas*60;
$vysl_cas="+".$cas_s." seconds";
$datum_cas=Date("m d, Y, H:i:s", strtotime($vysl_cas));
return $datum_cas;
}
- 1Pupik1989
- Začátečník

-
- Registrován: 20. říj 2011
- Bydliště: Dvůr Králové nad Labem
Re: Jak vytvořit odpočet času
Václav Sedlář: Už jsem ti k tomu odpočtu času jednou psal. To co teď dáváš za kód, je jedním slovem "hnus". Proč tam máš všechno 2x?
CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
- Exp
- Začátečník

-
- Registrován: 24. črc 2004
- Bydliště: Tábor
- Kontaktovat uživatele:
Re: Jak vytvořit odpočet času
Zajímalo by mě jakej smysl má třeba tohle?
Kód: Vybrat vše
secLeft = secLeft;- 1Pupik1989
- Začátečník

-
- Registrován: 20. říj 2011
- Bydliště: Dvůr Králové nad Labem
Re: Jak vytvořit odpočet času
A taky ten kód nebude fungovat, pokud čas nebude přesně 0. Takže pokud bude třeba -100, tak to poběží dále. Navíc nechápu proč tam je třeba tento řádek:
Proč se tam neporovnává spíš celkový čas? A co když budou zbývat ještě nějaké dny nebo hodiny?
I když moje řešení není nějak vyladěné, ale připadá mi přeci jen trošku čistější a kratší.
Kód: Vybrat vše
if(((minsLeft=="0" || minsLeft=="00") && (secLeft=="0" || secLeft=="00"))){I když moje řešení není nějak vyladěné, ale připadá mi přeci jen trošku čistější a kratší.
Kód: Vybrat vše
function Timer(time){
this.time = time;
};
Timer.prototype = {
start:function(){ //Spuštění funkce
var that = this;
this.step(this.time);
this.timer = setInterval(function(){
that.time -= that.subTime;
that.step(that.time);
if(that.time<=0){
that.stop();
that.complete();
}
},this.subTime);
},
subTime:1000, //Čas po kterém se cyklus opakuje
step:function(){ //Zde se dá nastavit, co se každý krok stane
},
complete:function(){ //Co se stane, až časovač dojde nakonec tedy k 0
},
stop:function(){ //zastavení časovače
clearInterval(this.timer);
},
toString:function(){ //Převod milisekund na řetězec
if(this.time<0){ return false; }
var diff = this.time;
var d = 24*60*60*1000, h = 60*60*1000, m = 60*1000;
var days = diff/d ^ 0;
diff -= days*d;
var hours = diff/h ^ 0;
diff -= hours*h;
var minutes = diff/m ^ 0;
diff -= minutes*m;
var seconds = diff/1000 ^ 0;
diff -= seconds*1000;
return days+" dní "+hours+":"+minutes+":"+
seconds+"." +diff;
}
};CPU: AMD Phenom II x4 955BE @ 4GHz FAN: Arctic Cooling Freezer Xtreme rev.2
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
MB: MSI 760GM-E51
RAM: Kingston 2x4Gb RAM DDR3 1333 @ 1466MHz
GPU: Gigabyte Radeon HD 6850 OC 985/1260MHz
HDD: WD Caviar Green WD10EARX 1TB SATAIII/600, ZDROJ: Fortron FSP550-APN (550W)
