Gebruik overal UTC / GMT. En reken overal met UTC / GMT. De datums en -tijden die je overal toont kun je in lokale datum/tijd weergeven want functies als date() enzo nemen UTC al als uitgangspunt. Zorg ook dat je één bron hebt voor de tijd: ofwel in PHP, ofwel in MySQL, maar niet beide, want dan ben je mogelijk met twee maten aan het meten.
Voorbeeld:
PHP
<?php
header('Content-Type: text/html; charset=UTF-8');
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
$now = time(); // huidige unix tijd
// verander tijdszone naar Amsterdam, datum(formatteer)functies reageren hierop omdat deze altijd vanuit UTC werken
date_default_timezone_set('Europe/Amsterdam');
$AmsterdamTime = date('Y-m-d H:i:s', $now);
// verander tijdszone naar LA
date_default_timezone_set('America/Los_Angeles');
$LATime = date('Y-m-d H:i:s', $now);
?><h2>Amsterdam: <?php echo $AmsterdamTime ?></h2>
<h2>Los Angeles: <?php echo $LATime ?></h2>
Toon Meer
Levert:
Amsterdam: 2017-10-30 17:17:09
Los Angeles: 2017-10-30 09:17:09
Dus ook al verander je de tijdszone, je gebruikt in beide gevallen dezelfde timestamp als basis ($now). Je rekent op die manier dus altijd met één universele klok. Welke tijd je vervolgens toont hangt bijvoorbeeld af van een gebruikersinstelling (de tijdszone waarin deze persoon zit).
