MDL-81195 core_course: allow for daylight savings

In timezones where daylight savings time is used, courses that start
on a Monday at 00:00 would display the week headings incorrectly
during the change forward.

When the time changes backwards, courses that have a start time of
Sunday at 23:00 also have a mislabeled week.

This attempts to use the DateTime() library, along with the user's
local timezone setting to display the correct day, rather than just
subtracting 86400.
This commit is contained in:
Marty
2025-01-23 14:49:05 -05:00
parent bcf06a0484
commit fca896d4df
+6 -2
View File
@@ -93,8 +93,12 @@ class format_weeks extends core_courseformat\base {
} else {
$dates = $this->get_section_dates($section);
// We subtract 24 hours for display purposes.
$dates->end = ($dates->end - 86400);
// Find the prior day for display purposes.
$enddate = new DateTime();
$enddate->setTimezone(core_date::get_user_timezone_object());
$enddate->setTimestamp(intval($dates->end));
$enddate->modify('-1 day');
$dates->end = $enddate->getTimestamp();
$dateformat = get_string('strftimedateshort');
$weekday = userdate($dates->start, $dateformat);