Ik heb een idee waarvan ik niet precies weet hoe ik dat het best kan uitwerken. Op mijn site wil ik wedstrijden laten zien die 'vandaag' worden gespeeld. Daarbij wil ik dan de tijd laten zien dat de wedstrijd begint voor de bezoeker en kunnen laten zien dat de wedstrijd bezig is of af is. Eventueel met een optie om dat om te zetten naar lokale tijden.
In de database wil ik dus de datum en tijd bewaren van een wedstrijd, ook plaats + land. Het punt is alleen dat die wedstrijden over de hele wereld plaats vinden, dus ik vermoed dat ik dan met tijdzones moet gaan rekenen? En speelt zomer- of wintertijd dan ook nog een rol? Ik raak een beetje verstrikt hoe ik dat moet uitwerken, zowel qua opslag in MySQL als hoe ik dat in PHP vervolgens moet gebruiken. Ik ben wel bekend met de PHP timezone functie op UTC om tijdverschillen te berekenen.
@Ward: Aardig punt, maar voorlopig is dat nog niet echt wat ik nodig heb. Wedstrijden die geweest zijn zijn in tegenstelling tot films namelijk nog wel interessant. Maar ik zal het in het achterhoofd houden.
@Ben: Ik snap niet zo goed wat die SET time_zone kan doen als ik de datum en tijdzone afzonderlijk ophaal uit Mysql? Wat betreft die API is dat misschien een optie, al ben ik tot dusver niet zo bekend met Javascript en kan ik die API's soms maar moeilijk doorgronden.
Maar wat denken jullie van het scriptje? Is dit de way to go?
Ik heb het allemaal bekeken, en het werk erg mooi. Bedankt daarvoor! Het enige probleem waar ik nog tegen aan loop is dat ik direct wil nagaan in welke tijdzone iemand zit. Nu voer je de locaties zelf in, maar dat is dus iets wat ik niet wil. Enig idee hoe dat het best zou kunnen?
Cookies voor tijdzones? Na een inlog elders, of bij het cleanen van je cookies sta je weer op UTC.
Als je al een useraccount-systeem hebt, dan kan je de tijdzone prima opslaan. Je moet wel rekening houden met de wintertijd, want dan verandert de uur-interval ook. Of sla in zijn profiel op in welk land hij woont, en stem de tijdzones daarop af.
Ik denk dat grotere sites wel met landherkenning werken en Geo2IP databases, en alle landen per tijdzone hebben ingedeeld. Er is zelfs een complete dataset voor in diverse formaten.
Ik dacht dat ik het allemaal perfect voor elkaar had, maar loop toch weer tegen een probleem aan met mijn tijdzone.
Ik selecteer namelijk op basis van de datum van de tijdzone, en dan op de wedstrijden die dag. Maarja, als je dan in Australië woont ben je dus al een dag verder terwijl er in de USA nog wedstrijden moeten worden verreden. Niet zo slim dus. Precies het probleem wat Ward hier al eerder schetste met een tv-gids. Nu krijg je dus afhankelijk van je tijdzone wisselende resultaten, maar dat moet dus eigenlijk niet nee.
Maar kan ik vanuit Mysql zelf al ophalen welke wedstrijden er de komende 24 uur (en afgelopen 12 uur) zijn? Aangezien de tijden allemaal UTC (?) zijn, en die vervolgens met tijdzone worden omgezet naar de daadwerkelijke tijd. Of moet ik dat eerst met PHP ophalen, de tijden omzetten, en daarmee opnieuw de betreffende wedstrijden ophalen uit Mysql?