From 3dfb8a315c20a4808816759304c0551c28f82fd0 Mon Sep 17 00:00:00 2001 From: Simmo Saan Date: Mon, 5 Jan 2015 19:55:40 +0200 Subject: [PATCH 1/2] Implement actual timezone adjustment into PHPExcel_Shared_Date::PHPToExcel --- Classes/PHPExcel/Shared/Date.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Classes/PHPExcel/Shared/Date.php b/Classes/PHPExcel/Shared/Date.php index 75f367eac..bf6f0beec 100644 --- a/Classes/PHPExcel/Shared/Date.php +++ b/Classes/PHPExcel/Shared/Date.php @@ -185,12 +185,19 @@ public static function ExcelToPHPObject($dateValue = 0) { public static function PHPToExcel($dateValue = 0, $adjustToTimezone = FALSE, $timezone = NULL) { $saveTimeZone = date_default_timezone_get(); date_default_timezone_set('UTC'); + + $timezoneAdjustment = ($adjustToTimezone) ? + PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone ?: $saveTimeZone, $dateValue) : + 0; + $retValue = FALSE; if ((is_object($dateValue)) && ($dateValue instanceof DateTime)) { + $dateValue->add(new DateInterval('PT' . $timezoneAdjustment . 'S')); $retValue = self::FormattedPHPToExcel( $dateValue->format('Y'), $dateValue->format('m'), $dateValue->format('d'), $dateValue->format('H'), $dateValue->format('i'), $dateValue->format('s') ); } elseif (is_numeric($dateValue)) { + $dateValue += $timezoneAdjustment; $retValue = self::FormattedPHPToExcel( date('Y',$dateValue), date('m',$dateValue), date('d',$dateValue), date('H',$dateValue), date('i',$dateValue), date('s',$dateValue) ); From 5685bf337f653372007ebd9ddaa1976c1a1e10ac Mon Sep 17 00:00:00 2001 From: Simmo Saan Date: Thu, 8 Jan 2015 22:22:32 +0200 Subject: [PATCH 2/2] Keep support for PHP 5.2.0 in PHPExcel_Shared_date::PHPToExcel --- Classes/PHPExcel/Shared/Date.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/PHPExcel/Shared/Date.php b/Classes/PHPExcel/Shared/Date.php index bf6f0beec..ca0ad5e56 100644 --- a/Classes/PHPExcel/Shared/Date.php +++ b/Classes/PHPExcel/Shared/Date.php @@ -187,7 +187,7 @@ public static function PHPToExcel($dateValue = 0, $adjustToTimezone = FALSE, $ti date_default_timezone_set('UTC'); $timezoneAdjustment = ($adjustToTimezone) ? - PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone ?: $saveTimeZone, $dateValue) : + PHPExcel_Shared_TimeZone::getTimezoneAdjustment($timezone ? $timezone : $saveTimeZone, $dateValue) : 0; $retValue = FALSE;