MDL-27562 formslib: Timezone option is passed to usergetdate for dateselector and...
authorRajesh Taneja <rajesh@moodle.com>
Fri, 4 May 2012 05:42:35 +0000 (13:42 +0800)
committerRajesh Taneja <rajesh@moodle.com>
Mon, 7 May 2012 07:23:44 +0000 (15:23 +0800)
lib/form/dateselector.php
lib/form/datetimeselector.php

index 969b11c..f2acc7f 100644 (file)
@@ -45,7 +45,10 @@ class MoodleQuickForm_date_selector extends MoodleQuickForm_group
      * Control the fieldnames for form elements
      * startyear => int start of range of years that can be selected
      * stopyear => int last year that can be selected
-     * timezone => float/string timezone
+     * timezone => int|float|string (optional) timezone modifier used for edge case only.
+     *      If not specified, then date is caclulated based on current user timezone.
+     *      Note: dst will be calculated for string timezones only
+     *      {@link http://docs.moodle.org/dev/Time_API#Timezone}
      * applydst => apply users daylight savings adjustment?
      * optional => if true, show a checkbox beside the date to turn it on (or off)
      * @var array
@@ -147,7 +150,7 @@ class MoodleQuickForm_date_selector extends MoodleQuickForm_group
                     $value = time();
                 }
                 if (!is_array($value)) {
-                    $currentdate = usergetdate($value);
+                    $currentdate = usergetdate($value, $this->_options['timezone']);
                     $value = array(
                         'day' => $currentdate['mday'],
                         'month' => $currentdate['mon'],
index f7468c2..e7709cd 100644 (file)
@@ -45,7 +45,10 @@ class MoodleQuickForm_date_time_selector extends MoodleQuickForm_group{
      * startyear => int start of range of years that can be selected
      * stopyear => int last year that can be selected
      * defaulttime => default time value if the field is currently not set
-     * timezone => float/string timezone
+     * timezone => int|float|string (optional) timezone modifier used for edge case only.
+     *      If not specified, then date is caclulated based on current user timezone.
+     *      Note: dst will be calculated for string timezones only
+     *      {@link http://docs.moodle.org/dev/Time_API#Timezone}
      * applydst => apply users daylight savings adjustment?
      * step => step to increment minutes by
      * optional => if true, show a checkbox beside the date to turn it on (or off)
@@ -164,7 +167,7 @@ class MoodleQuickForm_date_time_selector extends MoodleQuickForm_group{
                     }
                 }
                 if (!is_array($value)) {
-                    $currentdate = usergetdate($value);
+                    $currentdate = usergetdate($value, $this->_options['timezone']);
                     // Round minutes to the previous multiple of step.
                     $currentdate['minutes'] -= $currentdate['minutes'] % $this->_options['step'];
                     $value = array(