CC-3067: Shows in frontend widgets appear on the wrong day after changing timezone
- Converting times to UTC timezone in ApiController before sending them to model functions - Added utility functions in DateHelper.php - GetShowsByDayOfWeek has been removed due to bugs caused by using local timezone based variable like $day, which represents day of the week in local time, in db query, which has times saved in UTC timezone. Converting stuff like day of the week from local to UTC is messy. GetNextShows(...) can do the job so WeekInfoAction now uses it instead
This commit is contained in:
parent
eb93004b66
commit
86729475f6
4 changed files with 62 additions and 87 deletions
|
@ -211,12 +211,12 @@ class ApiController extends Zend_Controller_Action
|
|||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
$date = new Application_Model_DateHelper;
|
||||
$timeNow = $date->getTimestamp();
|
||||
$timeEnd = $date->getDayEndTimestamp();
|
||||
$utcTimeNow = $date->getUtcTimestamp();
|
||||
$utctimeEnd = Application_Model_DateHelper::GetDayEndTimestampInUtc();
|
||||
|
||||
$result = array("env"=>APPLICATION_ENV,
|
||||
"schedulerTime"=>gmdate("Y-m-d H:i:s"),
|
||||
"nextShow"=>Application_Model_Show::GetNextShows($timeNow, 5, $timeEnd));
|
||||
"nextShow"=>Application_Model_Show::GetNextShows($utcTimeNow, 5, $utcTimeEnd));
|
||||
|
||||
Application_Model_Show::ConvertToLocalTimeZone($result["nextShow"], array("starts", "ends", "start_timestamp", "end_timestamp"));
|
||||
|
||||
|
@ -236,12 +236,19 @@ class ApiController extends Zend_Controller_Action
|
|||
$this->view->layout()->disableLayout();
|
||||
$this->_helper->viewRenderer->setNoRender(true);
|
||||
|
||||
$date = new Application_Model_DateHelper;
|
||||
$dayStart = $date->getWeekStartDate();
|
||||
$utcDayStart = Application_Model_DateHelper::ConvertToUtcDateTimeString($dayStart);
|
||||
|
||||
$dow = array("sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday");
|
||||
|
||||
$result = array();
|
||||
for ($i=0; $i<7; $i++){
|
||||
$shows = Application_Model_Show::GetShowsByDayOfWeek($i);
|
||||
Application_Model_Show::ConvertToLocalTimeZone($shows, array("show_starts", "show_ends"));
|
||||
$utcDayEnd = Application_Model_DateHelper::GetDayEndTimestamp($utcDayStart);
|
||||
$shows = Application_Model_Show::GetNextShows($utcDayStart, 0, $utcDayEnd);
|
||||
$utcDayStart = $utcDayEnd;
|
||||
|
||||
Application_Model_Show::ConvertToLocalTimeZone($shows, array("starts", "ends", "start_timestamp", "end_timestamp"));
|
||||
|
||||
$result[$dow[$i]] = $shows;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue