Recent ben ik overgestapt van PHP4 naar PHP5. Nu heb ik wat problemen m.b.t. tijdzones. In een database sloeg ik vaak timestamps op gegenereerd met de time() functie, het aantal seconden sinds 1-1-1970. Sinds de overgang naar PHP5 lijkt het alsof er iets is veranderd met de time() functie. Bij PHP5 is wordt het aantal seconden gereturned sinds 1-1-1970 (UTC). Kan het kloppen dat bij PHP4 het aantal seconden werd gereturned sinds 1-1-1970 CET (afh. van wat je zelf had ingesteld)? Uit de gegevens uit m'n database blijkt er ineens 2 uur verschil in te zitten, dus ik vermoed dat de werking van time() iets veranderd is. Ik kan hier echter nergens iets over vinden, waardoor ik twijfel of ik het bij het juiste eind heb.. Kan iemand hier iets zinnigs over zeggen voordat ik alle (oude) tijden in de database ga converteren?
Wat zou helpen: heeft iemand ergens een PHP4 install en kan onderstaande scriptje runnen? Dan heb ik al voldoende antwoord denk ik:
geeft:
Wat zou helpen: heeft iemand ergens een PHP4 install en kan onderstaande scriptje runnen? Dan heb ik al voldoende antwoord denk ik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| echo "<br>";
date_default_timezone_set('Europe/Amsterdam'); echo "TZ => Europe/Amsterdam<br>";
$time = time();
echo "De huidige timestamp door time() is: " . $time . "<br>";
date_default_timezone_set('UTC'); echo "TZ => UTC<br>";
echo "$time unixtime in UTC weergegeven is: " . date("d-m-Y H:i:s", $time);echo "<br>";
date_default_timezone_set('Europe/Amsterdam'); echo "TZ => Europe/Amsterdam<br>";
echo "$time unixtime in CET weergegeven is: " . date("d-m-Y H:i:s", $time);echo "<br>";
echo "<br>";
date_default_timezone_set('UTC'); echo "TZ => UTC<br>";
$time = time();
echo "De huidige timestamp door time() is: " . $time . "<br>";
date_default_timezone_set('UTC'); echo "TZ => UTC<br>";
echo "$time unixtime in UTC weergegeven is: " . date("d-m-Y H:i:s", $time);echo "<br>";
date_default_timezone_set('Europe/Amsterdam'); echo "TZ => Europe/Amsterdam<br>";
echo "$time unixtime in CET weergegeven is: " . date("d-m-Y H:i:s", $time);echo "<br>"; |
geeft:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| TZ => Europe/Amsterdam De huidige timestamp door time() is: 1221131643 TZ => UTC 1221131643 unixtime in UTC weergegeven is: 11-09-2008 11:14:03 TZ => Europe/Amsterdam 1221131643 unixtime in CET weergegeven is: 11-09-2008 13:14:03 TZ => UTC De huidige timestamp door time() is: 1221131643 TZ => UTC 1221131643 unixtime in UTC weergegeven is: 11-09-2008 11:14:03 TZ => Europe/Amsterdam 1221131643 unixtime in CET weergegeven is: 11-09-2008 13:14:03 |