From 09c3ea1e5ed1c60265b1fb23bbc88ed2c8ef0e77 Mon Sep 17 00:00:00 2001 From: DavidBadura Date: Wed, 22 Apr 2015 12:00:47 +0000 Subject: [PATCH] fix timezone problem --- src/Serializer/Handler/CarbonHandler.php | 5 +++++ src/Task.php | 11 ++++------- tests/TaskManagerTest.php | 2 +- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Serializer/Handler/CarbonHandler.php b/src/Serializer/Handler/CarbonHandler.php index 6233b14..bb0ad82 100644 --- a/src/Serializer/Handler/CarbonHandler.php +++ b/src/Serializer/Handler/CarbonHandler.php @@ -70,6 +70,9 @@ class CarbonHandler implements SubscribingHandlerInterface */ public function serializeCarbon(VisitorInterface $visitor, Carbon $date, array $type, Context $context) { + $date = clone $date; + $date->setTimezone($this->defaultTimezone); + return $visitor->visitString($date->format($this->getFormat($type)), $type, $context); } @@ -94,6 +97,8 @@ class CarbonHandler implements SubscribingHandlerInterface throw new RuntimeException(sprintf('Invalid datetime "%s", expected format %s.', $data, $format)); } + $datetime->setTimezone(new \DateTimeZone(date_default_timezone_get())); + return $datetime; } diff --git a/src/Task.php b/src/Task.php index edcd274..72de2f5 100644 --- a/src/Task.php +++ b/src/Task.php @@ -125,7 +125,7 @@ class Task public function __construct() { $this->urgency = 0; - $this->entry = new Carbon('now', new \DateTimeZone('UTC')); + $this->entry = new Carbon('now'); $this->status = self::STATUS_PENDING; } @@ -387,18 +387,15 @@ class Task private function parseDateTime($date) { if ($date instanceof \DateTime) { - return new Carbon($date->format('Y-m-d H:i:s'), new \DateTimeZone('UTC')); + return new Carbon($date->format('Y-m-d H:i:s')); } if ($date instanceof Carbon) { - $date = clone $date; - $date->setTimezone(new \DateTimeZone('UTC')); - return $date; } if (is_string($date)) { - return new Carbon($date, new \DateTimeZone('UTC')); + return new Carbon($date); } if ($date === null) { @@ -414,7 +411,7 @@ class Task public function __clone() { $this->uuid = null; - $this->entry = new Carbon('now', new \DateTimeZone('UTC')); + $this->entry = new Carbon('now'); $this->status = self::STATUS_PENDING; } } \ No newline at end of file diff --git a/tests/TaskManagerTest.php b/tests/TaskManagerTest.php index 65400a7..42de606 100644 --- a/tests/TaskManagerTest.php +++ b/tests/TaskManagerTest.php @@ -707,6 +707,6 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase */ private function createDateTime($string = 'now') { - return new \DateTime($string, new \DateTimeZone('UTC')); + return new \DateTime($string); } } \ No newline at end of file