Avatar billede Slettet bruger
09. februar 2006 - 22:40 Der er 13 kommentarer og
1 løsning

PHP ur, med automatisk opdatering uden klik lyd

Hej eksperter, jeg ville gerne vide hvordan jeg får lavet et ur, som skal køre efter PHP (altså funktion date("H:i"); ), og så skal den så opdater hvert min.

Håber I kan hjælpe mig...
Avatar billede gizmo-gizmo Nybegynder
09. februar 2006 - 22:45 #1
Det kan ikke lade sig gøre med PHP, du er nødsaget til at benytte javascript til det (med mindre siden skal reloade)
Avatar billede lolman Nybegynder
09. februar 2006 - 22:56 #2
nemlig gizmo! Det kan ikke lade sig gøre med PHP. Men med JS kan det godt.. Bare sig til hvis jeg skal hjælpe dig med det.. ;)
Avatar billede Slettet bruger
09. februar 2006 - 23:37 #3
<script type="text/javascript">
function clock() {
document.clock.innerHTML = 'Klokken: <?PHP echo date("H:i"); ?>';
setTimeout(clock();, 10000);
}
</script>

<div id="clock"></div>
Avatar billede Slettet bruger
09. februar 2006 - 23:44 #4
Eller på en eller anden måde, hente klokken ind i PHP, og så bare tælle den op med Javascript, dette burde da være muligt, og hvis sec så er over 60, skal den jo bare lægge 1 til min, osv.
Avatar billede Slettet bruger
09. februar 2006 - 23:51 #5
ala...

<script type="text/javascript">
var time = '<?PHP echo date("H"); ?>';
var min = '<?PHP echo date("i"); ?>';

function clock() {
    if(time >= 23) {
        time = 0;
    }
    if(min >= 60) {
        time = time+1;
    }

document.write("<div>"+time+":"+min+"</div>");
}
</script>
Avatar billede lolman Nybegynder
10. februar 2006 - 07:42 #6
så skal du have kl. ind i sek altså time() derefter skal du bare lave en settimeout(func(),100)
Avatar billede Slettet bruger
10. februar 2006 - 09:37 #7
Mit script:
<script type="text/javascript">
function clock() {
var time = '<?PHP echo time(); ?>';
document.write(time);
settimeout(clock(),100);
}
clock();
</script>

men så skriver den bare:
113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605113956060511395606051139560605
Avatar billede Slettet bruger
10. februar 2006 - 09:37 #8
og forsætter derudaf
Avatar billede Slettet bruger
10. februar 2006 - 09:39 #9
Dette ville jeg nok selv fortrække:
<script type="text/javascript">
function clock() {
var time = '<?PHP echo time(); ?>';
//document.write(time);
document.getElementById('ur').innerHTML = 'hej';
settimeout(clock(),100);
}
clock();
</script>
<div id="ur"></div>

Men den skriver ikke noget ud.
Avatar billede Slettet bruger
10. februar 2006 - 12:48 #10
Nogen andre der kan hjælpe med dette?
Avatar billede tjens Nybegynder
10. februar 2006 - 19:53 #11
Der er et eksempel der virker i Javascript kategorien her:
http://www.eksperten.dk/spm/636322
Men det er self browserens tid der vises, og ikke serverens.

I dit seneste eksempel bliver PHP koden jo kun udført 1 gang i serveren, og dit javascript indeholder derefter en konstant.
Prøv at lave en view source i browseren, og se hvad jeg mener.

Ellers er der et klassisk javascript ur med tre visere og rund skive her:
<html>
<head>
<title>Javascript ur</title>
<SCRIPT LANGUAGE="JavaScript">
<!--
fCol='#FF7DBF';
dCol='#FFAC00';
hCol='#68C4FF';
mCol='#008080';
sCol='#FF7DBF';
ClockHeight=35;
ClockWidth=35;
ClockFromMouseY=80;
ClockFromMouseX=5;

ns=(document.layers);
ie=(document.all);
h=3;
m=4;
s=5;
face='1 2 3 4 5 6 7 8 9 10 11 12';
face=face.split(' ');
n=face.length;
speed=0.6;
ymouse=0;
xmouse=0;
scrll=0;
p="<font face=Arial size=1 color="+fCol+">";
e=360/n;
HandHeight=ClockHeight/4;
HandWidth=ClockWidth/4;
HandY=0;
HandX=0;
scrll=0;
y=new Array();x=new Array();Y=new Array();X=new Array();
for (i=0; i < 37; i++){y[i]=0;x[i]=0;Y[i]=0;X[i]=0}
Dy=new Array();Dx=new Array();DY=new Array();DX=new Array();
for (i=0; i < n; i++){Dy[i]=0;Dx[i]=0;DY[i]=0;DX[i]=0}
if (ns){
for (i=0; i < n; i++)
document.write('<layer name="nsN'+i+'" top=0 left=0 height=15

width=15><center>'+p+face[i]+'</font></center></layer>');
for (i=0; i < n; i++)
document.write('<layer name="nsD'+i+'" top=0 left=0 bgcolor='+dCol+' clip="0,0,2,2"></layer>');
for (i=0; i < h; i++)
document.write('<layer name=nsH'+i+' top=0 left=0 bgcolor='+hCol+' clip="0,0,2,2"></layer>');
for (i=0; i < m; i++)
document.write('<layer name=nsM'+i+' top=0 left=0 bgcolor='+mCol+' clip="0,0,2,2"></layer>');
for (i=0; i < s; i++)
document.write('<layer name=nsS'+i+' top=0 left=0 bgcolor='+sCol+' clip="0,0,2,2"></layer>');
}
if (ie){
document.write('<div id="On" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < n; i++)
document.write('<div id="ieN"

style="position:absolute;width:15px;height:15px;text-align:center">'+p+face[i]+'</font></div>');
document.write('</div></div>');
document.write('<div id="Od" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < n; i++)
document.write('<div id="ieD"

style="position:absolute;height:2px;width:2px;font-size:2px;background:'+dCol+'"></div>');
document.write('</div></div>');
document.write('<div id="Oh" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < h; i++)
document.write('<div id="ieH"

style="position:absolute;width:2px;height:2px;font-size:2px;background:'+hCol+'"></div>');
document.write('</div></div>');
document.write('<div id="Om" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < m; i++)
document.write('<div id="ieM"

style="position:absolute;width:2px;height:2px;font-size:2px;background:'+mCol+'"></div>');
document.write('</div></div>')
document.write('<div id="Os" style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i=0; i < s; i++)
document.write('<div id="ieS"

style="position:absolute;width:2px;height:2px;font-size:2px;background:'+sCol+'"></div>');
document.write('</div></div>')
}
(ns)?window.captureEvents(Event.MOUSEMOVE):0;
function Mouse(evnt){
ymouse = (ns)?evnt.pageY+ClockFromMouseY-(window.pageYOffset):event.y+ClockFromMouseY;
xmouse = (ns)?evnt.pageX+ClockFromMouseX:event.x+ClockFromMouseX;
}
(ns)?window.onMouseMove=Mouse:document.onmousemove=Mouse;
function ClockAndAssign(){
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.575 + Math.PI * hr/6+Math.PI*parseInt(time.getMinutes())/360;
if (ie){
On.style.top=window.document.body.scrollTop;
Od.style.top=window.document.body.scrollTop;
Oh.style.top=window.document.body.scrollTop;
Om.style.top=window.document.body.scrollTop;
Os.style.top=window.document.body.scrollTop;
}
for (i=0; i < s; i++){
var sd=(ns)?document.layers['nsS'+i]:ieS[i].style;
sd.top=y[8+i]+HandY+(i*HandHeight)*Math.sin(sec)+scrll;
sd.left=x[8+i]+HandX+(i*HandWidth)*Math.cos(sec);
}
for (i=0; i < m; i++){
var md=(ns)?document.layers['nsM'+i]:ieM[i].style;
md.top=y[4+i]+HandY+(i*HandHeight)*Math.sin(min)+scrll;
md.left=x[4+i]+HandX+(i*HandWidth)*Math.cos(min);
}
for (i=0; i < h; i++){
var hd=(ns)?document.layers['nsH'+i]:ieH[i].style;
hd.top=y[1+i]+HandY+(i*HandHeight)*Math.sin(hrs)+scrll;
hd.left=x[1+i]+HandX+(i*HandWidth)*Math.cos(hrs);
}
for (i=0; i < n; i++){
var D=(ns)?document.layers['nsD'+i]:ieD[i].style;
D.top=y[13+i] + ClockHeight*Math.sin(-1.0471 + i*e*Math.PI/180)+scrll;
D.left=x[13+i] + ClockWidth*Math.cos(-1.0471 + i*e*Math.PI/180);
}
for (i=0; i < n; i++){
var N=(ns)?document.layers['nsN'+i]:ieN[i].style;
N.top=y[25+i]-6 + ClockHeight*1.4*Math.sin(-1.0471 + i*e*Math.PI/180)+scrll;
N.left=x[25+i]-6 + ClockWidth*1.4*Math.cos(-1.0471 + i*e*Math.PI/180);
}
}
function Delay(){
scrll=(ns)?window.pageYOffset:0;
y[0]=Math.round(Y[0]+=((ymouse)-Y[0])*speed);
x[0]=Math.round(X[0]+=((xmouse)-X[0])*speed);
for (i=1; i < 37; i++){
y[i]=Math.round(Y[i]+=(y[i-1]-Y[i])*speed);
x[i]=Math.round(X[i]+=(x[i-1]-X[i])*speed);
}
ClockAndAssign();
setTimeout('Delay()',20);
}
if (ns||ie)window.onload=Delay;
// -->
</script>

</head>
<body onLoad="makesnake(); bgcolor="white" >
</body>
</html>
Avatar billede Slettet bruger
11. februar 2006 - 12:41 #12
Ja, men ville jeg ikke kunne gøre det jeg vil?
Avatar billede tjens Nybegynder
11. februar 2006 - 21:13 #13
PHP kører i serveren, og bliver dermed ikke kaldt hver gang javascriptfunktionen kører i browseren.
(Har du lavet en view source i browseren som jeg bad dig om? Du skulle se at PHP kommandoerne var forsvundet! )

Desuden er det ikke sundt design at browseren kalder tilbage til serveren for at hente minutter og sekunder; For meget trafik.

Men hvis du kan leve med at sekunderne kommer fra klienten kan det gøres sådan her:

<html><body>
<p>Tekst før uret</p>
<p>
Klokken er: <span id="ur" ></span>
</p>
<p><span id="cg">Tekst efter uret</span></p>

<script language='JavaScript'>
timeId = 0;
var huskminut = 90;

var h = '<?PHP echo date("H"); ?>';
var m = '<?PHP echo date("i"); ?>';

function updateWatch()
{
    var tid = new Date();
    s = tid.getSeconds();
    if ( s == 0 ) {
        var detteminut = tid.getMinutes();
        if ( detteminut != huskminut ) {
      m++;
          huskminut = detteminut;
        }
    }

    if (m >= 60) {
    m = 0;
        h++;
    }

    if (h > 23) {
    h = 0;
        document.getElementById("cg").innerHTML =
        "<b>Husk at gå i seng Coldgate</b>" ;
    }

    hrs = (h>=10) ? ""+h : "0"+h;
    mns = (m>=10) ? ":"+m : ":0"+m;
    scs = (s>=10) ? ":"+s : ":0"+s;

    document.getElementById("ur").innerHTML = hrs + mns + scs;

    timeId = setTimeout('updateWatch();', 500);
};
updateWatch();
</script>
</body></html>
Avatar billede Slettet bruger
30. april 2006 - 10:38 #14
Det er egentlig ikke helt det jeg har søgt!
Så jeg lukker spørgsmålet, men ellers mange tak for alle de indlæg.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester