11. januar 2008 - 17:46
Der er
21 kommentarer og 3 løsninger
Live nedtælling med PHP?
Hej derude... kan man lave en live nedtælling med PHP indblandet?? Tænker på at den skal tage tiden fra scriptet loades til en given tid som jeg sender til den igennem PHP'en... nogen idéer?
Annonceindlæg fra Axcess Nordic
11. januar 2008 - 17:49
#1
PHP udføres jo serverside, så selve scriptet, der tæller, bør nok være JavaScript. Men du kan muligvis bruge PHP til at finde tidspunktet, hvis det skal være efter serverens ur og ikke brugerens.
11. januar 2008 - 17:50
#2
Og jeg havde selvf. tænkt mig at JS skulle gøre den live nedtælling mulig ;)
11. januar 2008 - 17:53
#3
:)
11. januar 2008 - 17:56
#4
Hvis du har noget jeg kan bruge må du meget gerne fyrre det af :P Men helst ikke de der kilometer lange JS scripts jeg har set nogle steder... den skal bare vise sekunder.. minutter eller timer alt efter hvad der er tilbage..
11. januar 2008 - 18:02
#5
Det har jeg ikke desværre. Så undskyld, at jeg spammer dit spørgsmål. :) Troede jeg kunne finde noget, men det kunne jeg ikke umiddelbart.
11. januar 2008 - 18:13
#6
Jeg kunne kun finde dette her kilometerlange script: ---------------------------------------------------------- <script type="text/javascript" language="javascript"> TargetDate="12/31/2020 5:00 AM"; BackColor="palegreen"; ForeColor="navy"; CountActive=true; CountStepper=-1; LeadingZero=true; DisplayFormat="%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds."; FinishMessage="It is finally here!"; function calcage(secs,num1,num2){ s=((Math.floor(secs/num1))%num2).toString(); if(LeadingZero&&s.length<2)s="0"+s; return "<b>"+s+"</b>"; } function CountBack(secs){ if(secs<0){document.getElementById("cntdwn").innerHTML=FinishMessage;return;} DisplayStr=DisplayFormat.replace(/%%D%%/g,calcage(secs,86400,100000)); DisplayStr=DisplayStr.replace(/%%H%%/g,calcage(secs,3600,24)); DisplayStr=DisplayStr.replace(/%%M%%/g,calcage(secs,60,60)); DisplayStr=DisplayStr.replace(/%%S%%/g,calcage(secs,1,60)); document.getElementById("cntdwn").innerHTML=DisplayStr; if(CountActive)setTimeout("CountBack("+(secs+CountStepper)+")",SetTimeOutPeriod); } function putspan(backcolor,forecolor){document.write("<span id='cntdwn' style='background-color:"+Backcolor+";color:"+forecolor+"'></span>")} if(typeof(BackColor)=="undefined")BackColor="white"; if(typeof(ForeColor)=="undefined")ForeColor="black"; if(typeof(TargetDate)=="undefined")TargetDate="12/31/2020 5:00 AM"; if(typeof(DisplayFormat)=="undefined")DisplayFormat="%%D%% Days, %%H%% Hours, %%M%% Minutes, %%S%% Seconds."; if(typeof(CountActive)=="undefined")CountActive=true; if(typeof(FinishMessage)=="undefined")FinishMessage=""; if(typeof(CountStepper)!="number")CountStepper=-1; if(typeof(LeadingZero)=="undefined")LeadingZero=true; CountStepper=Math.ceil(CountStepper); if(!CountStepper)CountActive=false; var SetTimeOutPeriod=(Math.abs(CountStepper)-1)*1000+990; putspan(BackColor,ForeColor); var dthen=new Date(TargetDate); var dnow=new Date(); if(CountStepper>0)ddiff=new Date(dnow-dthen); else ddiff=new Date(dthen-dnow); gsecs=Math.floor(ddiff.valueOf()/1000); CountBack(gsecs); </script>
11. januar 2008 - 18:14
#7
Der er selvfølgelig lidt med nogle farver og sådan noget også som kan skæres fra.
11. januar 2008 - 18:27
#8
mangler der noget? Jeg for ikke rigtigt noget output...
11. januar 2008 - 19:09
#9
Jo, jeg får den heller ikke til at virke.. Hmm.
11. januar 2008 - 19:36
#10
Olebole gav lige en anden spørger denne kode, så jeg: ----------------------------------------------- <script type="text/JavaScript"> // 11. januar kl. 19:32:10:100 var oDate = new Date(2008, 0, 11, 19, 33, 10, 100); function countDown() { clearTimeout(nTimer); var nDif = oDate-new Date(); var nMin = Math.floor(nDif/60000); var sMin = nMin<0 ? "00" : nMin<10 ? "0"+nMin : nMin; nDif = nDif%60000; var nSec= Math.ceil(nDif/1000); var sSec = nSec<0? "00" : nSec<10 ? "0"+nSec : nSec; var nMil = nDif%1000; var sMil = nMil<0 ? "000" : nMil<10 ? "00"+nMil : nMil<100 ? "0"+nMil : nMil oDispl.firstChild.nodeValue = sMin + " : " + sSec + " : " + sMil; if (nMin<1 && nSec<1 && nMil<1) return foo(); // Nedtællingen er slut nTimer = setTimeout("countDown()", 30); } function foo() { alert("Nedtælling slut") } var oDispl = nTimer = null; window.onload = function() { oDispl = document.getElementById("timerDispl"); countDown(); } </script> <span id="timerDispl" style="font:bold 20px tahoma"> </span>
11. januar 2008 - 22:09
#11
<ole> - og jeg skrev en forkert kommentar. Den skulle lyde: // 11. januar kl. 19:33:10:100 var oDate = new Date(2008, 0, 11, 19, 33, 10, 100); Formen for tidspunktet er: var oDate = new Date(år, måned*, dag, time, minut, sekund, millisekund); *) bemærk, at månederne går fra 0 til 11 - med januar som 0 og december som 11 /mvh </bole>
12. januar 2008 - 16:21
#12
Er der nogen måde man kan få timer med? Lige nu skriver den en masse minutter... ellers er det lige hvad jeg søger
12. januar 2008 - 17:33
#13
... var nDif = oDate-new Date(); var nTim = Math.floor(nDif/3600000); var sTim = nTim<0 ? "00" : nTim<10 ? "0"+nTim : nTim; nDif = nDif%3600000; var nMin = Math.floor(nDif/60000); var sMin = nMin<0 ? "00" : nMin<10 ? "0"+nMin : nMin; ... oDispl.firstChild.nodeValue = sTim + " : " + sMin + " : " + sSec + " : " + sMil;
12. januar 2008 - 17:33
#14
-- og det skal jo nok være <1 og ikke <0 !-)
12. januar 2008 - 17:43
#15
Det er jo perfekt :o) kan jeg få jer til at smide et svar alle sammen?
12. januar 2008 - 17:43
#16
nTim<0 og nMin<0 skal være <1 ??
12. januar 2008 - 18:05
#17
nTim osv. kan aldrig blive mindre end 0 (da det altid vil være heltal !-), så enten skal der spørges på mindre end eller lig med nul eller det nemmere mindre end 1 !o] -- og velbekomme '-)
12. januar 2008 - 18:15
#18
Ellers tak. Jeg påpegede blot en fejl i min kode fra det andet spørgsmål, så det må være w13 og roenvings points ;o)
12. januar 2008 - 19:03
#19
Okidoke. =)
12. januar 2008 - 19:08
#20
Hmm... har et andet JS script der kører med live time som viser klokken på serveren; <script> parent.document.getElementById('time').innerHTML = "<?php $time = date("G:i:s"); Echo "<img src=../gfx/time.gif> Time: $time"; ?>"; function loadet() { setTimeout("location.reload(true)",1000); } </script> men det ser ud til at dø når jeg også bruge nedtællingen... nogen idéer?
14. januar 2008 - 00:11
#21
Den reloader vel også hele siden hvert sekund ?-)
03. marts 2008 - 10:22
#22
Må hellere få lukket :P Tak for hjælpen.
03. marts 2008 - 15:42
#23
-- og tal for point ;~}
03. marts 2008 - 16:29
#24
Tak !-)
Vi tilbyder markedets bedste kurser inden for webudvikling