diff --git a/src/TaskManager.php b/src/TaskManager.php index b30c397..a8a92a7 100644 --- a/src/TaskManager.php +++ b/src/TaskManager.php @@ -260,9 +260,9 @@ class TaskManager 'project' => $task->getProject(), 'priority' => $task->getPriority(), 'tags' => $task->getTags(), - 'due' => $task->getDue() ? $task->getDue()->format('Ymd\THis\Z') : null, - 'wait' => $task->getWait() ? $task->getWait()->format('Ymd\THis\Z') : null, - 'until' => $task->getUntil() ? $task->getUntil()->format('Ymd\THis\Z') : null + 'due' => $this->transformDate($task->getDue()), + 'wait' => $this->transformDate($task->getWait()), + 'until' => $this->transformDate($task->getUntil()) ]; if ($task->getRecurring()) { @@ -326,6 +326,22 @@ class TaskManager $refProp->setValue($task, $value); } + /** + * @param \DateTime $dateTime + * @return null|string + */ + private function transformDate(\DateTime $dateTime = null) + { + if (!$dateTime) { + return null; + } + + $dateTime = clone $dateTime; + $dateTime->setTimezone(new \DateTimeZone('UTC')); + + return $dateTime->format('Ymd\THis\Z'); + } + /** * @return Serializer */ diff --git a/tests/TaskManagerTest.php b/tests/TaskManagerTest.php index 42de606..a95bcb8 100644 --- a/tests/TaskManagerTest.php +++ b/tests/TaskManagerTest.php @@ -23,10 +23,20 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase */ protected $taskManager; + /** + * @var string + */ + protected $taskDir; + public function setUp() { - $this->tearDown(); - $this->taskwarrior = new Taskwarrior(__DIR__ . '/.taskrc', __DIR__ . '/.task'); + $this->taskDir = __DIR__; + + $fs = new Filesystem(); + $fs->remove($this->taskDir . '/.taskrc'); + $fs->remove($this->taskDir . '/.task'); + + $this->taskwarrior = new Taskwarrior($this->taskDir . '/.taskrc', $this->taskDir . '/.task'); $this->taskManager = new TaskManager($this->taskwarrior); $this->taskwarrior->version(); // to initialise } @@ -34,8 +44,8 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase public function tearDown() { $fs = new Filesystem(); - $fs->remove(__DIR__ . '/.taskrc'); - $fs->remove(__DIR__ . '/.task'); + $fs->remove($this->taskDir . '/.taskrc'); + $fs->remove($this->taskDir . '/.task'); } public function testEmpty() @@ -707,6 +717,6 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase */ private function createDateTime($string = 'now') { - return new \DateTime($string); + return new \Carbon\Carbon($string); } } \ No newline at end of file