begroeting met tijd

Status
Niet open voor verdere reacties.

ctv

Gebruiker
Lid geworden
30 apr 2011
Berichten
122
hoi
ik heb een scriptje gemaakt dat als het 7 uur is dan staat er goedemorgen
en als het 12 uur is goedemiddig ,alles werkt maar het probleem zit toen het 12 uur was zei het goedenacht.
ik denk dat het probleem bij de server is die staat namelijk in amerika of englang (online server).
hoe kan ik het script aanpassen dat het met de tijd van computer werkt ?

PHP:
<?php
if ('6' <= date('H') && date('H') < '12') {
echo "<h1>Goedemorgen, welkom op mijn website!</h1>";
}
elseif (date('H') >= '12' && date('H') < '18') {
echo "<h1>Goedemiddag, welkom op mijn website!</h1>";
}
elseif(date('H') >= '18' && date('H') < '24') {
echo "<h1>Goedeavond, welkom op mijn website!</h1>";
}
elseif(date('H') >= '0' && date('H') < '6') {
echo "<h1>Goedenacht, welkom op mijn website!</h1>";
}
?>
 
Wil je de tijd van de gebruiker gebruiken dan zul je eerder bij javascript uitkomen. PHP pakt de servertijd voor alle datum-functies.
 
De code komt nagenoeg overeen, ik heb alleen de controles gewijzigd.
Standaard pak ik "Goedenacht", vervolgens controleer ik steeds of het uur groter is.

Deze javascript code heb je nodig:
[js]
console.time('greeting');
var current_date = new Date().getHours();
var greeting = 'Goedenacht';

if(current_date >= 6) {
greeting = 'Goedemorgen';
}
if(current_date >= 12) {
greeting = 'Goedemiddag';
}
if(current_date >= 18) {
greeting = 'Goedenavond';
}
console.timeEnd('greeting');
document.getElementById('greeting').innerHTML = greeting + ', welkom op mijn website!';
[/js]
En deze zet je in je pagina:
HTML:
<h1 id="greeting"></h1>
http://jsfiddle.net/MBZH2/1/ (Execution time: ~ 0.057ms)

Een notering met IF en ELSE
[js]
console.time('greeting');
var current_date = new Date().getHours();
var greeting = 'Goedenacht';

if(current_date >= 6) {
if(current_date >= 12) {
if(current_date >= 18) {
greeting = 'Goedenavond';
} else {
greeting = 'Goedemiddag';
}
} else {
greeting = 'Goedemorgen';
}
}
console.timeEnd('greeting');
document.getElementById('greeting').innerHTML = greeting + ', welkom op mijn website!';
[/js]
http://jsfiddle.net/MBZH2/2/ (Execution time: ~ 0.053ms)

PS: De console.time() en console.timeEnd() zijn puur voor debugging om het verschil in performance aan te kunnen geven. Deze zijn niet noodzakelijk voor de werking van het script
 
Laatst bewerkt:
Je kan ook in PHP met de functie date_default_timezone_set de juiste tijdzone opgeven. Dan zou je PHP-script wel goed moeten werken.

Tenzij je publiek uit allerlei verschillende tijdzones komt, dan kan je beter de oplossing van Tha Devil gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan