From f89bc6503af376a5d277692ed32d8df8c1c24784 Mon Sep 17 00:00:00 2001
From: Rachman Chavik <rchavik@xintesa.com>
Date: Thu, 17 May 2012 18:52:47 +0700
Subject: [PATCH] CakeTime::format crashed when timezone is passed

---
 lib/Cake/Test/Case/Utility/CakeTimeTest.php | 2 ++
 lib/Cake/Utility/CakeTime.php               | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/Cake/Test/Case/Utility/CakeTimeTest.php b/lib/Cake/Test/Case/Utility/CakeTimeTest.php
index 5c546f43d..d7152b5b5 100644
--- a/lib/Cake/Test/Case/Utility/CakeTimeTest.php
+++ b/lib/Cake/Test/Case/Utility/CakeTimeTest.php
@@ -472,9 +472,11 @@ class CakeTimeTest extends CakeTestCase {
  */
 	public function testFormat() {
 		$format = 'D-M-Y';
+		$tz = date_default_timezone_get();
 		$arr = array(time(), strtotime('+1 days'), strtotime('+1 days'), strtotime('+0 days'));
 		foreach ($arr as $val) {
 			$this->assertEquals(date($format, $val), $this->Time->format($format, $val));
+			$this->assertEquals(date($format, $val), $this->Time->format($format, $val, false, $tz));
 		}
 
 		$result = $this->Time->format('Y-m-d', null, 'never');
diff --git a/lib/Cake/Utility/CakeTime.php b/lib/Cake/Utility/CakeTime.php
index 8f00a367b..2c78505bc 100644
--- a/lib/Cake/Utility/CakeTime.php
+++ b/lib/Cake/Utility/CakeTime.php
@@ -914,7 +914,7 @@ class CakeTime {
  */
 	public static function format($format, $date = null, $invalid = false, $timezone = null) {
 		$time = self::fromString($date, $timezone);
-		$_time = self::fromString($format, $timezone);
+		$_time = is_numeric($time) ? false : self::fromString($format, $timezone);
 
 		if (is_numeric($_time) && $time === false) {
 			$format = $date;