Beste collega scripter,

Ik zit bij een Amerikaanse webhosting, en heb dus ook Amerikaanse servertijden.
Nu wil ik dus een Nederlandse tijd in een tabel gooien, en moeten de tijden dus omgerekend worden.
Wie weet hoe ik dit moet doen? Zelf zat ik te denken aan variable, maar ik weet dit niet.

Alvast bedankt.

Tim
Gooi aub UTC tijden in de database en reken het daarna om naar de juiste lokale tijd.

date_default_timezone_set("UTC"); boven aan je script plaatsen zorgt dat date() en de datetime extensie output standaard in UTC geven.

Daarna kun je met de Datetime en DateTimeZone classes aan de gang:

Voorbeeld: http://3v4l.org/OIWPb
<?php

date_default_timezone_set("UTC");

$tijd_in_UTC = '2014-02-10 20:18'; // voorbeeld, dit komt uit de db

$datetime = new DateTime($tijd_in_UTC);
echo $datetime->format('Y-m-d H:i:sP') , PHP_EOL;

$datetime->setTimezone(new DateTimeZone('Europe/Amsterdam')); // of misschien kan de user zijn eigen timezone instellen en komt die ook uit de database?
echo $datetime->format('Y-m-d H:i:sP'), PHP_EOL;

?>

UTC is de Coordinated Universal Time (vervangt GMT) en is een logischer keuze om tijden in op te slaan.
Is het niet gewoon mogelijk om alles om te rekenen, en dat dan in de tabel te gooien met een regeltje?

Tim
Hoi Tim,

Indien je de server verteld dat hij met Nederlandse tijd moet werken (zoals andere leden ook al zeiden) door deze in te stellen met volgende commando:

date_default_timezone_set('Europe/Amsterdam');

Zul je de juiste resultaten krijgen in PHP.

Groet,

Erwin,
SiteOn

Reageren