Skip to content

Commit 5fd36f5

Browse files
committed
Attempt at fixing timezone handling
1 parent 4e04095 commit 5fd36f5

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

rdb/Datum/ObjectDatum.php

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,19 @@ public function toNative($opts)
6868
&& isset($native['$reql_type$']) && $native['$reql_type$'] == 'TIME') {
6969
$time = $native['epoch_time'];
7070
$format = (strpos($time, '.') !== false) ? 'Y-m-d H:i:s.u' : 'Y-m-d H:i:s';
71-
$datetime = new \DateTime(date($format, $time));
71+
$datetime = new \DateTime(date($format, $time) . " " . $native['timezone']);
72+
73+
// This is horrible. Just because in PHP 5.3.something parsing "+01:00" as a date interval doesn't work. :(
74+
$tzSign = $native['timezone'][0];
75+
$tzHours = $native['timezone'][1] . $native['timezone'][2];
76+
$tzMinutes = $native['timezone'][4] . $native['timezone'][5];
77+
if ($tzSign == "+") {
78+
$datetime->add(new \DateInterval("PT" . $tzHours . "H" . $tzMinutes . "M"));
79+
} elseif ($tzSign == "-") {
80+
$datetime->sub(new \DateInterval("PT" . $tzHours . "H" . $tzMinutes . "M"));
81+
} else {
82+
throw new RqlDriverError("Timezone not understood: " . $native['timezone']);
83+
}
7284

7385
return $datetime;
7486
}

0 commit comments

Comments
 (0)