From ae1bd3937759fb4d17a07eb563a6d0fab4b95c08 Mon Sep 17 00:00:00 2001
From: Carsten Brandt <mail@cebe.cc>
Date: Fri, 28 Nov 2014 06:29:20 +0100
Subject: [PATCH] adjusted missing return for fix #6263

---
 framework/i18n/Formatter.php                    |  2 +-
 tests/unit/framework/i18n/FormatterDateTest.php | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/framework/i18n/Formatter.php b/framework/i18n/Formatter.php
index c986957..7c990fb 100644
--- a/framework/i18n/Formatter.php
+++ b/framework/i18n/Formatter.php
@@ -601,7 +601,7 @@ class Formatter extends Component
         // checking for DateTime and DateTimeInterface is not redundant, DateTimeInterface is only in PHP>5.5
         if ($value === null || $value instanceof DateTime || $value instanceof DateTimeInterface) {
             // skip any processing
-            return $value;
+            return $checkTimeInfo ? [$value, true] : $value;
         }
         if (empty($value)) {
             $value = 0;
diff --git a/tests/unit/framework/i18n/FormatterDateTest.php b/tests/unit/framework/i18n/FormatterDateTest.php
index 900146c..8a80f28 100644
--- a/tests/unit/framework/i18n/FormatterDateTest.php
+++ b/tests/unit/framework/i18n/FormatterDateTest.php
@@ -63,6 +63,13 @@ class FormatterDateTest extends TestCase
         $this->assertSame(date('n/j/y', $value), $this->formatter->asDate($value, 'short'));
         $this->assertSame(date('F j, Y', $value), $this->formatter->asDate($value, 'long'));
 
+        $value = new DateTime();
+        $this->assertSame(date('M j, Y', $value->getTimestamp()), $this->formatter->asDate($value));
+        $this->assertSame(date('Y/m/d', $value->getTimestamp()), $this->formatter->asDate($value, 'php:Y/m/d'));
+        $this->assertSame(date('m/d/Y', $value->getTimestamp()), $this->formatter->asDate($value, 'MM/dd/yyyy'));
+        $this->assertSame(date('n/j/y', $value->getTimestamp()), $this->formatter->asDate($value, 'short'));
+        $this->assertSame(date('F j, Y', $value->getTimestamp()), $this->formatter->asDate($value, 'long'));
+
         // empty input
         $this->assertSame('Jan 1, 1970', $this->formatter->asDate(''));
         $this->assertSame('Jan 1, 1970', $this->formatter->asDate(0));
@@ -89,6 +96,10 @@ class FormatterDateTest extends TestCase
         $this->assertSame(date('g:i:s A', $value), $this->formatter->asTime($value));
         $this->assertSame(date('h:i:s A', $value), $this->formatter->asTime($value, 'php:h:i:s A'));
 
+        $value = new DateTime();
+        $this->assertSame(date('g:i:s A', $value->getTimestamp()), $this->formatter->asTime($value));
+        $this->assertSame(date('h:i:s A', $value->getTimestamp()), $this->formatter->asTime($value, 'php:h:i:s A'));
+
         // empty input
         $this->assertSame('12:00:00 AM', $this->formatter->asTime(''));
         $this->assertSame('12:00:00 AM', $this->formatter->asTime(0));
@@ -114,6 +125,10 @@ class FormatterDateTest extends TestCase
         $this->assertSame(date('M j, Y g:i:s A', $value), $this->formatter->asDatetime($value));
         $this->assertSame(date('Y/m/d h:i:s A', $value), $this->formatter->asDatetime($value, 'php:Y/m/d h:i:s A'));
 
+        $value = new DateTime();
+        $this->assertSame(date('M j, Y g:i:s A', $value->getTimestamp()), $this->formatter->asDatetime($value));
+        $this->assertSame(date('Y/m/d h:i:s A', $value->getTimestamp()), $this->formatter->asDatetime($value, 'php:Y/m/d h:i:s A'));
+
         // empty input
         $this->assertSame('Jan 1, 1970 12:00:00 AM', $this->formatter->asDatetime(''));
         $this->assertSame('Jan 1, 1970 12:00:00 AM', $this->formatter->asDatetime(0));
--
libgit2 0.27.1