Toon posts:

[PHP] Lopende klok

Pagina: 1
Acties:
  • 233 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik zit met een probleempje, ik ben bezig met het bouwen van een online veiling en daarbij is de server tijd heel belangrijk.
Ik heb al gezocht naar standaard klokken, maar alles wat ik vind is in javascript en die maakt alleen gebruik van de client tijd.

Nu is mijn vraag is het mogelijk om een lopende klok te maken in php of nog mooier een javascript klok die zich een keer synchroniseerd met de servertijd en dan client side verder loopt? (om serverload te minimaliseren)

Alvast bedankt,

Wouter

Verwijderd

dan print je toch gewoon de phptijd (servertijd) in het javascriptje...zodat het mee loopt per sec.

Verwijderd

Topicstarter
Mijn javascript kennis laat het een beetje afweten ben ik bang, als ik zoiets wil doen krijg ik niets in beeld?

Hoe mix ik php en Javascript verantwoordelijk? ;)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
PHP kan in principe nooit meer dan een statische HTML pagina, dat moet je altijd in de gaten houden als je met dergelijke dynamische zaken gaat werken.

Wat jij wilt is waarschijnlijk wel mogelijk, maar dan moet je even zorgen dat de starttijd van de klok gegeneerd wordt door de server en de klok daarna relatief doorloopt. Houdt echter wel rekening met mogelijk grote afwijkingen... (transporttijd van de pagina bijv).

Als je echt vrij exact wilt gaan synchronizeren (volledig exact is trouwens theoretisch al niet mogelijk) moet je toch richting naar een Java Applet oplossing gaan denken :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Pseudocode
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$time = time;
?>
<head>
<javascript>
function maaktMooiKlokje(time) 
{
   gebruik_time_functies_van_JS_om_mooi_klokje_te_maken;
}
</javascript>
</head>
<body>
Blaat
Blaat
Plek waar klok moet staan:
<javascript>
document.write(maaktMooiKlokje('<?=time?>');
</javascript>
Blaat
Blaat
</body>

Et voilà.

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 15 februari 2002 11:50 schreef dannydude het volgende:
Pseudocode

Et voilà.
En voila, je server staat in zuidafrika, en de pagina doet er 20 seconden over om te laden :)

Verwijderd

Op vrijdag 15 februari 2002 11:51 schreef Nielsz het volgende:

[..]

En voila, je server staat in zuidafrika, en de pagina doet er 20 seconden over om te laden :)
Dus... je zou evt. de ping uit kunnen gaan rekeken :) maar wat meneer in zijn topic-start aangaf was dat de server-tijd de maatstaf moest zijn. Dit lijkt mij de enige manier. Om de laad-tijd te verkorten kan je natuurlijk in een extern data-bestandje de tijd neerzetten en ervoor zorgen dat dat bestand als laatste wordt geladen, dan heb je een zo up-to-date mogelijke tijd, maar meer is er volgens mij niet te doen...

Verwijderd

Mocht je er nog wat aan hebben: dit scriptje heb ik ooit van een openSRC site gehaald en naar het Nederlandse tijdsysteem en de nederlandse taal vertaald (lees wel: ooit, dus misschien kan het een stuk efficienter)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<SCRIPT language=Javascript1.2>
<!--
if(navigator.appName == "Netscape") {document.write('<layer id="clock"></layer><br>');}
if (navigator.appVersion.indexOf("MSIE") != -1){document.write('<span id="clock"></span>');}

DaysofWeek = new Array()  
DaysofWeek[0]="zondag" 
DaysofWeek[1]="maandag"  
DaysofWeek[2]="dinsdag" 
DaysofWeek[3]="woensdag"  
DaysofWeek[4]="donderdag"  
DaysofWeek[5]="vrijdag"  
DaysofWeek[6]="zaterdag";

Months = new Array()  
Months[0]="januari"  
Months[1]="februari"  
Months[2]="maart"  
Months[3]="april"  
Months[4]="mei"  
Months[5]="juni"  
Months[6]="juli"  
Months[7]="augustus"  
Months[8]="september"  
Months[9]="oktober"  
Months[10]="november"  
Months[11]="december";

function upclock()
{
var dte = new Date();
var hrs = dte.getHours();
var min = dte.getMinutes();
var sec = dte.getSeconds();
var day = DaysofWeek[dte.getDay()];
var date = dte.getDate();
var month = Months[dte.getMonth()];
var year = dte.getFullYear();
var col = ":";
var spc = " ";
var com = " ";
var apm;

var text1 = "Het is nu ";
var text2 = " op ";


if (hrs<=9) hrs="0"+hrs;
if (min<=9) min="0"+min;
if (sec<=9) sec="0"+sec;
if(navigator.appName == "Netscape") 
{
document.clock.document.write(text1+hrs+col+min+col+sec+com+text2+day+spc+date+spc+month+com+spc+year);
document.clock.document.close();
}
if (navigator.appVersion.indexOf("MSIE") != -1)
{
clock.innerHTML = text1+hrs+col+min+col+sec+com+text2+day+spc+date+spc+month+com+spc+year;
}
}
setInterval("upclock()",1000);
//-->
</SCRIPT>

Verwijderd

Topicstarter
Ik krijg het niet voor elkaar om in het javascript gedeelte te rekenen met php variabelen?
Hij geeft alleen maar errors de hele tijd :(

Verwijderd

Post je code/url dan es...

  • SWINX
  • Registratie: Juni 2001
  • Laatst online: 11-04 17:07
Op vrijdag 15 februari 2002 12:32 schreef IceFlame het volgende:
Ik krijg het niet voor elkaar om in het javascript gedeelte te rekenen met php variabelen?
Hij geeft alleen maar errors de hele tijd :(
PHP:
1
2
3
4
5
6
7
8
<?
$time = [haal_ff_de_tijd_binnen_met_een_php_functie];
echo "<script language=\"JavaScript\">\n";
echo "function klok() {\n";
echo "document.write('$time');\n";
echo "}\n";
echo "</script>";
?>

gebruik setInterval() of setTimeout() om de klok te refreshen

Mannen komen van Mars Tweakers, vrouwen van Venus Bokt


Verwijderd

Topicstarter
Yoo mensen de klok is up and running!!
wilde jullie nog ff bedanken voor jullie hulp!!
MEGA THNX!!! :)

Verwijderd

kunnen we 'm ook zien? ;)

  • StephanL
  • Registratie: Juni 2001
  • Laatst online: 21-05 09:37
Idd nu wil ik hem zien ook :)

Verwijderd

Hebben jullie nog nooit een lopende klok gezien.... alhoewel... nu dat ik er bij stil sta... ik heb ook nog nooit een "lopende" klok gezien... :+

Verwijderd

nou, euhm... :)
ik ben gewoon benieuwd wat ie er van gebakken heeft :)
Pagina: 1