From 39063aaadb99d9c9c7753673d2e89b367a299871 Mon Sep 17 00:00:00 2001 From: Naomi Date: Thu, 5 Dec 2013 15:12:01 -0500 Subject: [PATCH] CC-5594 : Remove all date_default_timezone_get() using the user selected timezone in the form to calculate duration. --- .../controllers/ScheduleController.php | 7 +++++-- .../application/services/ShowFormService.php | 9 ++++++--- .../public/js/airtime/schedule/add-show.js | 17 +++++++++++------ 3 files changed, 22 insertions(+), 11 deletions(-) diff --git a/airtime_mvc/application/controllers/ScheduleController.php b/airtime_mvc/application/controllers/ScheduleController.php index 8e6ad4486..12150c3db 100644 --- a/airtime_mvc/application/controllers/ScheduleController.php +++ b/airtime_mvc/application/controllers/ScheduleController.php @@ -630,9 +630,12 @@ class ScheduleController extends Zend_Controller_Action public function calculateDurationAction() { + $start = $this->_getParam('startTime'); + $end = $this->_getParam('endTime'); + $timezone = $this->_getParam('timezone'); + $service_showForm = new Application_Service_ShowFormService(); - $result = $service_showForm->calculateDuration($this->_getParam('startTime'), - $this->_getParam('endTime')); + $result = $service_showForm->calculateDuration($start, $end, $timezone); echo Zend_Json::encode($result); exit(); diff --git a/airtime_mvc/application/services/ShowFormService.php b/airtime_mvc/application/services/ShowFormService.php index 1d513587d..96f5dc655 100644 --- a/airtime_mvc/application/services/ShowFormService.php +++ b/airtime_mvc/application/services/ShowFormService.php @@ -470,11 +470,13 @@ class Application_Service_ShowFormService } } - public function calculateDuration($start, $end) + public function calculateDuration($start, $end, $timezone) { try { - $startDateTime = new DateTime($start); - $endDateTime = new DateTime($end); + + $tz = new DateTimeZone($timezone); + $startDateTime = new DateTime($start, $tz); + $endDateTime = new DateTime($end, $tz); $duration = $startDateTime->diff($endDateTime); @@ -490,6 +492,7 @@ class Application_Service_ShowFormService return $duration->format('%r%Hh %Im'); } } catch (Exception $e) { + Logging::info($e->getMessage()); return "Invalid Date"; } } diff --git a/airtime_mvc/public/js/airtime/schedule/add-show.js b/airtime_mvc/public/js/airtime/schedule/add-show.js index 1daeb36d8..4647d470b 100644 --- a/airtime_mvc/public/js/airtime/schedule/add-show.js +++ b/airtime_mvc/public/js/airtime/schedule/add-show.js @@ -687,7 +687,8 @@ function setAddShowEvents(form) { // calculate duration var startDateTimeString = startDateString + " " + startTimeString; var endDateTimeString = $('#add_show_end_date_no_repeat').val() + " " + $('#add_show_end_time').val(); - calculateDuration(startDateTimeString, endDateTimeString); + var timezone = $("#add_show_timezone").val(); + calculateDuration(startDateTimeString, endDateTimeString, timezone); } }); @@ -718,7 +719,8 @@ function setAddShowEvents(form) { // calculate duration var startDateTimeString = startDateString + " " + startTimeString; var endDateTimeString = endDateString + " " + endTimeString; - calculateDuration(startDateTimeString, endDateTimeString); + var timezone = $("#add_show_timezone").val(); + calculateDuration(startDateTimeString, endDateTimeString, timezone); } }); @@ -736,13 +738,16 @@ function setAddShowEvents(form) { } }) - function calculateDuration(startDateTime, endDateTime){ + function calculateDuration(startDateTime, endDateTime, timezone){ var loadingIcon = $('#icon-loader-small'); loadingIcon.show(); - $.post(baseUrl+"Schedule/calculate-duration", {startTime: startDateTime, endTime: endDateTime}, function(data){ - $('#add_show_duration').val(JSON.parse(data)); - loadingIcon.hide(); + $.post( + baseUrl+"Schedule/calculate-duration", + {startTime: startDateTime, endTime: endDateTime, timezone: timezone}, + function(data) { + $('#add_show_duration').val(JSON.parse(data)); + loadingIcon.hide(); }); }