Diafragmaat
Verre vakanties, vele verhalen, soms vreemde vogels, en vaak verzetten. Bij het verzetten, gaat het dan over de klok. Ik heb eens gekeken hoe we het verschil in tijdzone het beste kunnen uitleggen op een webpagina. Ik kwam op het idee een live wereldklok te maken die ook verschillen in de zomer & wintertijd bijhoudt.
Webpagina's zijn van origine statisch behalve dat we een bron moeten hebben, hebben we een methode nodig die de verandering van tij laat zien.
en we zullen het laten zien van de tijd op het moment van laden kan op verschillende manieren. de huidige tijd aan de server moeten vragen . Gelukkig is hier een regel voor hoe dit op te vragen aan de PHP-server. In ons geval gebruiken we de Laravel variant:
Date::now()->format('H:i:s');
en TADA, we krijgen de huidige tijd:
Kei bedankt en tot ziens! ...Of toch niet? Helaas is het zo dat dit de tijd was, toen de pagina geladen werd. Dus zelfs bij snelle lezers staat ie inmiddels al een aantal seconden achter. Verder is het gebonden aan de landcode server setting (Nederlands) voor de weergave.
Eerst gaan we kijken of we een manier hebben dit live bij te werken naar de huidige tijd, zonder dat de volledige pagina opnieuw ingeladen moet worden. We gaan dit doen met een Livewire component. Dit is een van de TALL-stack onderdelen die ik meer en meer toevoeg op mijn websites.
We creƫren een Livewire component door in ons console het commando "php artisan make:livewire clockNow". De 2 bestanden die Livewire hiermee aanmaakt roepen we aan vanuit deze pagina.
return view('livewire.clock-now');
wire:poll.5s.visible> Date::now()->format('H:i:s');
We laden het component met wire:
. Dan zorgt de poll.5s
voor de automatische update elke 5 seconden. .visible
zorgt er vervolgens voor dat updates alleen plaatsvinden als het component in beeld is.
Met behulp van tijdzone notatie binnen php krijgen we ook de Gambiaanse klok te zien: Date::now('Africa/Banjul')
Tijdens onze zomertijd is het in Gambia 2 uur vroeger en in onze wintertijd 1 uur. Toevoeging van de tijdzone zorgt ervoor dat de klok de daar geldende datum en tijd weergeeft. Dus niks meer aan doen! We hebben nu een live wereldklok die elke 5 seconden update:
Tijd in Nederland:
Tijd in Gambia:
Door Guido
Eigenaar Diafragmaat