This commit is contained in:
Huong Nguyen 2024-01-22 15:35:52 +07:00
commit c8d21e63a4
3 changed files with 27 additions and 6 deletions

View file

@ -2049,16 +2049,19 @@ class html_writer {
* @param int $currenttime A default timestamp in GMT
* @param int $step minute spacing
* @param array $attributes - html select element attributes
* @return HTML fragment
* @param float|int|string $timezone the timezone to use to calculate the time
* {@link https://moodledev.io/docs/apis/subsystems/time#timezone}
* @return string HTML fragment
*/
public static function select_time($type, $name, $currenttime = 0, $step = 5, array $attributes = null) {
public static function select_time($type, $name, $currenttime = 0, $step = 5, array $attributes = null, $timezone = 99) {
global $OUTPUT;
if (!$currenttime) {
$currenttime = time();
}
$calendartype = \core_calendar\type_factory::get_calendar_instance();
$currentdate = $calendartype->timestamp_to_date_array($currenttime);
$currentdate = $calendartype->timestamp_to_date_array($currenttime, $timezone);
$userdatetype = $type;
$timeunits = array();

View file

@ -20,6 +20,7 @@ information provided here is intended especially for developers.
* The options for `format_string()`, and `format_text()` are now checked for incorrectly passed context objects.
Please note that this was never an accepted value but previously failed silently.
* The current page language is available in new `core/config` language property for Javascript modules
* The `html_writer::select_time` method has a `$timezone` parameter to use when formatting the time parameter
* The following functions have been added to adhoc_task class:
- retry_until_success(): Used to indicate if the task should be re-run if it fails
By default, tasks will be retried until they succeed, other tasks can override this method to change this behaviour.

View file

@ -80,9 +80,26 @@ class data_field_date extends data_field_base {
}
$str = '<div title="'.s($this->field->description).'" class="mod-data-input form-inline">';
$dayselector = html_writer::select_time('days', 'field_'.$this->field->id.'_day', $content);
$monthselector = html_writer::select_time('months', 'field_'.$this->field->id.'_month', $content);
$yearselector = html_writer::select_time('years', 'field_'.$this->field->id.'_year', $content);
$dayselector = html_writer::select_time(
type: 'days',
name: "field_{$this->field->id}_day",
currenttime: $content,
timezone: 0,
);
$monthselector = html_writer::select_time(
type: 'months',
name: "field_{$this->field->id}_month",
currenttime: $content,
timezone: 0,
);
$yearselector = html_writer::select_time(
type: 'years',
name: "field_{$this->field->id}_year",
currenttime: $content,
timezone: 0,
);
$str .= $dayselector . $monthselector . $yearselector;
$str .= '</div>';