[JS & PHP] Lopende klok met servertijd

Door Elwin - Fratsloos, 23 jaar geleden, 12.529x bekeken

Ik weet dat het voornamelijk JavaScript is, maar iets dergelijks zal enkele PHP'ers toch wel interesseren.

Er zijn altijd ontwikkelaars die op de website een klok willen laten zien. Bijvoorbeeld in een bestelapplicatie waar er voor een bepaalde tijd besteld moet worden zodat de leverancier op tijd kan leveren.

Nu is het probleem meestal dat de bestaande JavaScript klokken de tijd van de gebruiker laten zien, terwijl de applicatie met de tijd van de server werkt. En wat gaat er dan mis? Juist, de klokken staan niet gelijk.

Onderstaand script lost dit op. Deze laat twee 'tellende' klokken zien. Een met de server tijd en een met de tijd van de PC. Op basis van dit script kan je dan de gebruiker attent maken op het feit dat de klokken een verschil hebben. Maar ook dat de tijd die genoemd wordt, de tijd van de server is.

Ik heb dit script niet zelf geschreven, tenminste, niet helemaal.
Ik heb de blauwdruk van de CRM applicatie van Campina. Een aantal aanpassingen, zoals bijvoorbeeld het invoegen van de datum door PHP (wat ook alle PHP aan dit script is).

Het JS gedeelte is redelijk goed te volgen, als je er een beetje verstand van hebt. Het PHP gedeelte is zelfs voor de n00bs te doen.. :)

Het script werkt met verborgen velden voor de tijden (6 stuks). Die kan je in principe ook mee verzenden naar een volgende pagina, alleen al om daar te zeggen wat het verschil in tijd is...

Voorbeeld: http://spacefrog.ath.cx/extra/phphulp/clock.php

Gesponsorde koppelingen

PHP script bestanden

  1. js-en-php-lopende-klok-met-servertijd

 

Er zijn 4 reacties op 'Js en amp php lopende klok met servertijd'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Marien xD
Marien xD
23 jaar geleden
 
0 +1 -0 -1
kijk, mijn eigen script werkte niet meer sinds mijn nieuwe layout (in ie dan) dus ga ik deze gebruiken ;)
Han eev
Han eev
23 jaar geleden
 
0 +1 -0 -1
Goed gemaakt er mooi!!
- SanThe -
- SanThe -
23 jaar geleden
 
0 +1 -0 -1
Jouw server loopt wel ongeveer twee minuten achter.

Ik vind het een heel groot en gecompliceerd script. Zelf gebruik ik een veel simpeler oplossing.
<html>
<head>
<SCRIPT type='text/javascript' language='JavaScript'>
<!--
ClientTime = new Date();
Hours = ClientTime.getHours() -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo date("H"); ?>
;
Minutes = ClientTime.getMinutes() -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo date("i"); ?>
;
Seconds = ClientTime.getSeconds() -
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo date("s"); ?>
;
function showFilled(Value) {
return (Value > 9) ? "" + Value : "0" + Value;
}
function StartClock24() {
TheTime = new Date();
TheTime.setHours(TheTime.getHours() - Hours);
TheTime.setMinutes(TheTime.getMinutes() - Minutes);
TheTime.setSeconds(TheTime.getSeconds() - Seconds);
document.clock.showTime.value = showFilled(TheTime.getHours()) + ":" + showFilled(TheTime.getMinutes()) + ":" + showFilled(TheTime.getSeconds());
setTimeout("StartClock24()",1000)
}
//-->
</script>
<title></title>
</head>
<body onLoad="StartClock24()">
<form name='clock'>
<input class='teller' name='showTime' size='8' maxlength='8'>
</form>
</body>
</html>

Voorbeeld: (met een beetje layout) hier
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Elwin - Fratsloos
Elwin - Fratsloos
23 jaar geleden
 
0 +1 -0 -1
@SanThe:
Bij mij is die wellicht groter omdat ik twee klokken laat zien.

En hij lijkt bij mij ook groter vanwege de hidden values en die gebruik je bijvoorbeeld om het verschil uit te rekenen, of misschien zelfs wel in een DB/sessi te stoppen om later nog eens te gebruiken. Maar goed.. beide scripts werken...

Elwin

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. js-en-php-lopende-klok-met-servertijd

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.