diff --git a/mod/data/field/date/field.class.php b/mod/data/field/date/field.class.php index 04a6e52af34..083d648ff01 100644 --- a/mod/data/field/date/field.class.php +++ b/mod/data/field/date/field.class.php @@ -44,7 +44,10 @@ class data_field_date extends data_field_base { $month = $formdata->$fieldname; $fieldname = 'field_' . $this->field->id . '_year'; $year = $formdata->$fieldname; - $content = make_timestamp($year, $month, $day, 12, 0, 0, 0, false); + + $calendartype = \core_calendar\type_factory::get_calendar_instance(); + $gregoriandate = $calendartype->convert_to_gregorian($year, $month, $day); + $content = make_timestamp($gregoriandate['year'], $gregoriandate['month'], $gregoriandate['day'], 12, 0, 0, 0, false); } else if ($recordid) { $content = (int)$DB->get_field('data_content', 'content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid)); } else { @@ -89,7 +92,11 @@ class data_field_date extends data_field_base { $usedate = optional_param('f_'.$this->field->id.'_z', 0, PARAM_INT); $data = array(); if (!empty($day) && !empty($month) && !empty($year) && $usedate == 1) { - $data['timestamp'] = make_timestamp($year, $month, $day, 12, 0, 0, 0, false); + $calendartype = \core_calendar\type_factory::get_calendar_instance(); + $gregoriandate = $calendartype->convert_to_gregorian($year, $month, $day); + + $data['timestamp'] = make_timestamp($gregoriandate['year'], $gregoriandate['month'], $gregoriandate['day'], + 12, 0, 0, 0, false); $data['usedate'] = 1; return $data; } else { @@ -110,7 +117,11 @@ class data_field_date extends data_field_base { $content = new stdClass(); $content->fieldid = $this->field->id; $content->recordid = $recordid; - $content->content = make_timestamp($this->year, $this->month, $this->day, 12, 0, 0, 0, false); + + $calendartype = \core_calendar\type_factory::get_calendar_instance(); + $gregoriandate = $calendartype->convert_to_gregorian($this->year, $this->month, $this->day); + $content->content = make_timestamp($gregoriandate['year'], $gregoriandate['month'], $gregoriandate['day'], + 12, 0, 0, 0, false); if ($oldcontent = $DB->get_record('data_content', array('fieldid'=>$this->field->id, 'recordid'=>$recordid))) { $content->id = $oldcontent->id;