From 40a6393ea57ca27043fc213d3ff91a2872f15118 Mon Sep 17 00:00:00 2001 From: Shamim Rezaie Date: Tue, 1 Dec 2015 15:37:07 +1100 Subject: [PATCH 1/1] MDL-52354 select_time: Make select_time respect the set calendar type The select_time method updated to display form elements in accordance to the calendar type plugin that is in use. --- lib/moodlelib.php | 2 +- lib/outputcomponents.php | 15 +++++---------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index 55c8b697ab6..c26d8c6815b 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -2208,7 +2208,7 @@ function date_format_string($date, $format, $tz = 99) { /** * Given a $time timestamp in GMT (seconds since epoch), - * returns an array that represents the date in user time + * returns an array that represents the Gregorian date in user time * * @package core * @category time diff --git a/lib/outputcomponents.php b/lib/outputcomponents.php index 7e858301ca7..b44b2796fc6 100644 --- a/lib/outputcomponents.php +++ b/lib/outputcomponents.php @@ -1386,28 +1386,23 @@ class html_writer { if (!$currenttime) { $currenttime = time(); } - $currentdate = usergetdate($currenttime); + $calendartype = \core_calendar\type_factory::get_calendar_instance(); + $currentdate = $calendartype->timestamp_to_date_array($currenttime); $userdatetype = $type; $timeunits = array(); switch ($type) { case 'years': - for ($i=1970; $i<=2020; $i++) { - $timeunits[$i] = $i; - } + $timeunits = $calendartype->get_years(); $userdatetype = 'year'; break; case 'months': - for ($i=1; $i<=12; $i++) { - $timeunits[$i] = userdate(gmmktime(12,0,0,$i,15,2000), "%B"); - } + $timeunits = $calendartype->get_months(); $userdatetype = 'month'; $currentdate['month'] = (int)$currentdate['mon']; break; case 'days': - for ($i=1; $i<=31; $i++) { - $timeunits[$i] = $i; - } + $timeunits = $calendartype->get_days(); $userdatetype = 'mday'; break; case 'hours': -- 2.43.0