コード例 #1
0
ファイル: formslib.php プロジェクト: educacionbe/cursos
/**
 * Initalize javascript for date type form element
 *
 * @staticvar bool $done make sure it gets initalize once.
 * @global moodle_page $PAGE
 */
function form_init_date_js()
{
    global $PAGE;
    static $done = false;
    if (!$done) {
        $module = 'moodle-form-dateselector';
        $function = 'M.form.dateselector.init_date_selectors';
        $config = array(array('firstdayofweek' => get_string('firstdayofweek', 'langconfig'), 'mon' => date_format_string(strtotime("Monday"), '%a', 99), 'tue' => date_format_string(strtotime("Tuesday"), '%a', 99), 'wed' => date_format_string(strtotime("Wednesday"), '%a', 99), 'thu' => date_format_string(strtotime("Thursday"), '%a', 99), 'fri' => date_format_string(strtotime("Friday"), '%a', 99), 'sat' => date_format_string(strtotime("Saturday"), '%a', 99), 'sun' => date_format_string(strtotime("Sunday"), '%a', 99), 'january' => date_format_string(strtotime("January 1"), '%B', 99), 'february' => date_format_string(strtotime("February 1"), '%B', 99), 'march' => date_format_string(strtotime("March 1"), '%B', 99), 'april' => date_format_string(strtotime("April 1"), '%B', 99), 'may' => date_format_string(strtotime("May 1"), '%B', 99), 'june' => date_format_string(strtotime("June 1"), '%B', 99), 'july' => date_format_string(strtotime("July 1"), '%B', 99), 'august' => date_format_string(strtotime("August 1"), '%B', 99), 'september' => date_format_string(strtotime("September 1"), '%B', 99), 'october' => date_format_string(strtotime("October 1"), '%B', 99), 'november' => date_format_string(strtotime("November 1"), '%B', 99), 'december' => date_format_string(strtotime("December 1"), '%B', 99)));
        $PAGE->requires->yui_module($module, $function, $config);
        $done = true;
    }
}
コード例 #2
0
ファイル: formslib.php プロジェクト: reconnectmedia/moodle
/**
 * Initalize javascript for date type form element
 *
 * @staticvar bool $done make sure it gets initalize once.
 * @global moodle_page $PAGE
 */
function form_init_date_js()
{
    global $PAGE;
    static $done = false;
    if (!$done) {
        $calendar = \core_calendar\type_factory::get_calendar_instance();
        $module = 'moodle-form-dateselector';
        $function = 'M.form.dateselector.init_date_selectors';
        $defaulttimezone = date_default_timezone_get();
        $config = array(array('firstdayofweek' => $calendar->get_starting_weekday(), 'mon' => date_format_string(strtotime("Monday"), '%a', $defaulttimezone), 'tue' => date_format_string(strtotime("Tuesday"), '%a', $defaulttimezone), 'wed' => date_format_string(strtotime("Wednesday"), '%a', $defaulttimezone), 'thu' => date_format_string(strtotime("Thursday"), '%a', $defaulttimezone), 'fri' => date_format_string(strtotime("Friday"), '%a', $defaulttimezone), 'sat' => date_format_string(strtotime("Saturday"), '%a', $defaulttimezone), 'sun' => date_format_string(strtotime("Sunday"), '%a', $defaulttimezone), 'january' => date_format_string(strtotime("January 1"), '%B', $defaulttimezone), 'february' => date_format_string(strtotime("February 1"), '%B', $defaulttimezone), 'march' => date_format_string(strtotime("March 1"), '%B', $defaulttimezone), 'april' => date_format_string(strtotime("April 1"), '%B', $defaulttimezone), 'may' => date_format_string(strtotime("May 1"), '%B', $defaulttimezone), 'june' => date_format_string(strtotime("June 1"), '%B', $defaulttimezone), 'july' => date_format_string(strtotime("July 1"), '%B', $defaulttimezone), 'august' => date_format_string(strtotime("August 1"), '%B', $defaulttimezone), 'september' => date_format_string(strtotime("September 1"), '%B', $defaulttimezone), 'october' => date_format_string(strtotime("October 1"), '%B', $defaulttimezone), 'november' => date_format_string(strtotime("November 1"), '%B', $defaulttimezone), 'december' => date_format_string(strtotime("December 1"), '%B', $defaulttimezone)));
        $PAGE->requires->yui_module($module, $function, $config);
        $done = true;
    }
}
コード例 #3
0
 /**
  * Test that the export path is created
  */
 public function test_version1exportpathcreated()
 {
     global $CFG, $DB, $USER;
     require_once $CFG->dirroot . '/local/datahub/fileplugins/log/log.class.php';
     require_once $CFG->dirroot . '/local/datahub/lib.php';
     set_config('export_path', 'exportpath/deeper', 'dhexport_version1');
     $filepath = $CFG->dataroot . '/exportpath/deeper';
     // Cleanup filepath if it exists at beginning of test.
     if (file_exists($filepath)) {
         rmdir($filepath);
     }
     // Set up the export file path.
     $filename = 'rliptestexport.csv';
     set_config('export_file', $filename, 'dhexport_version1');
     // Set up data for one course and one enroled user.
     $this->load_csv_data();
     // Create a scheduled job.
     $data = array('plugin' => 'dhexport_version1', 'period' => '5m', 'label' => 'bogus', 'type' => 'dhexport');
     $taskid = rlip_schedule_add_job($data);
     // Change the next runtime to a known value in the past.
     $task = new stdClass();
     $task->id = $taskid;
     $task->nextruntime = 99;
     $DB->update_record('local_eliscore_sched_tasks', $task);
     $job = new stdClass();
     $job->id = $DB->get_field(RLIP_SCHEDULE_TABLE, 'id', array('plugin' => 'dhexport_version1'));
     $job->nextruntime = 99;
     $DB->update_record(RLIP_SCHEDULE_TABLE, $job);
     // Lower bound on starttime.
     $starttime = time();
     $datestr = date_format_string($starttime, '%b_%e_%Y_');
     // not Windows compatible %e
     $outputfilename = 'rliptestexport_' . $datestr . '*.csv';
     // Wildcard for time
     // Run the export.
     $taskname = $DB->get_field('local_eliscore_sched_tasks', 'taskname', array('id' => $taskid));
     run_ipjob($taskname);
     // Debug code ...
     /*
     error_log("Export file name to test for: {$outputfilename}");
     ob_start();
     var_dump(glob($filepath.'/*'));
     $tmp = ob_get_contents();
     ob_end_clean();
     error_log("Export files: {$tmp}");
     */
     $files = glob($filepath . '/' . $outputfilename);
     $exists = !empty($files);
     // Cleanup the new file and folder.
     if ($exists) {
         unlink($files[0]);
         rmdir($filepath);
     }
     $this->assertTrue($exists);
 }
コード例 #4
0
 /**
  * Test the function date_format_string().
  */
 public function test_date_format_string()
 {
     global $CFG;
     // Forcing locale and timezone.
     $oldlocale = setlocale(LC_TIME, '0');
     if ($CFG->ostype == 'WINDOWS') {
         setlocale(LC_TIME, 'English_Australia.1252');
     } else {
         setlocale(LC_TIME, 'en_AU.UTF-8');
     }
     $systemdefaulttimezone = date_default_timezone_get();
     date_default_timezone_set('Australia/Perth');
     $tests = array(array('tz' => 99, 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 06:00 PM'), array('tz' => 0, 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 10:00 AM'), array('tz' => -12, 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 10:00 AM'), array('tz' => 99, 'str' => 'Žluťoučký koníček %A', 'expected' => 'Žluťoučký koníček Saturday'), array('tz' => 99, 'str' => '言語設定言語 %A', 'expected' => '言語設定言語 Saturday'), array('tz' => 99, 'str' => '简体中文简体 %A', 'expected' => '简体中文简体 Saturday'));
     // Note: date_format_string() uses the timezone only to differenciate
     // the server time from the UTC time. It does not modify the timestamp.
     // Hence similar results for timezones <= 13.
     // On different systems case of AM PM changes so compare case insensitive.
     foreach ($tests as $test) {
         $str = date_format_string(1293876000, $test['str'], $test['tz']);
         $this->assertSame(core_text::strtolower($test['expected']), core_text::strtolower($str));
     }
     // Restore system default values.
     date_default_timezone_set($systemdefaulttimezone);
     setlocale(LC_TIME, $oldlocale);
 }
コード例 #5
0
 /**
  * Test the function date_format_string().
  */
 public function test_date_format_string()
 {
     global $CFG;
     $this->resetAfterTest();
     $this->setTimezone(99, 'Australia/Perth');
     $tests = array(array('tz' => 99, 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 06:00 PM'), array('tz' => 0, 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 10:00 AM'), array('tz' => 'Pacific/Auckland', 'str' => '%A, %d %B %Y, %I:%M %p', 'expected' => 'Saturday, 01 January 2011, 11:00 PM'), array('tz' => 99, 'str' => 'Žluťoučký koníček %A', 'expected' => 'Žluťoučký koníček Saturday'), array('tz' => 99, 'str' => '言語設定言語 %A', 'expected' => '言語設定言語 Saturday'), array('tz' => 99, 'str' => '简体中文简体 %A', 'expected' => '简体中文简体 Saturday'));
     // Note: date_format_string() uses the timezone only to differenciate
     // the server time from the UTC time. It does not modify the timestamp.
     // Hence similar results for timezones <= 13.
     // On different systems case of AM PM changes so compare case insensitive.
     foreach ($tests as $test) {
         $str = date_format_string(1293876000, $test['str'], $test['tz']);
         $this->assertSame(core_text::strtolower($test['expected']), core_text::strtolower($str));
     }
 }
コード例 #6
0
/**
 * Returns a formatted string that represents a date in user time
 *
 * Returns a formatted string that represents a date in user time
 * <b>WARNING: note that the format is for strftime(), not date().</b>
 * Because of a bug in most Windows time libraries, we can't use
 * the nicer %e, so we have to use %d which has leading zeroes.
 * A lot of the fuss in the function is just getting rid of these leading
 * zeroes as efficiently as possible.
 *
 * If parameter fixday = true (default), then take off leading
 * zero from %d, else maintain it.
 *
 * @package core
 * @category time
 * @param int $date the timestamp in UTC, as obtained from the database.
 * @param string $format strftime format. You should probably get this using
 *        get_string('strftime...', 'langconfig');
 * @param int|float|string  $timezone by default, uses the user's time zone. if numeric and
 *        not 99 then daylight saving will not be added.
 *        {@link http://docs.moodle.org/dev/Time_API#Timezone}
 * @param bool $fixday If true (default) then the leading zero from %d is removed.
 *        If false then the leading zero is maintained.
 * @param bool $fixhour If true (default) then the leading zero from %I is removed.
 * @return string the formatted date/time.
 */
function userdate($date, $format = '', $timezone = 99, $fixday = true, $fixhour = true)
{
    global $CFG;
    if (empty($format)) {
        $format = get_string('strftimedaydatetime', 'langconfig');
    }
    if (!empty($CFG->nofixday)) {
        // Config.php can force %d not to be fixed.
        $fixday = false;
    } else {
        if ($fixday) {
            $formatnoday = str_replace('%d', 'DD', $format);
            $fixday = $formatnoday != $format;
            $format = $formatnoday;
        }
    }
    // Note: This logic about fixing 12-hour time to remove unnecessary leading
    // zero is required because on Windows, PHP strftime function does not
    // support the correct 'hour without leading zero' parameter (%l).
    if (!empty($CFG->nofixhour)) {
        // Config.php can force %I not to be fixed.
        $fixhour = false;
    } else {
        if ($fixhour) {
            $formatnohour = str_replace('%I', 'HH', $format);
            $fixhour = $formatnohour != $format;
            $format = $formatnohour;
        }
    }
    //add daylight saving offset for string timezones only, as we can't get dst for
    //float values. if timezone is 99 (user default timezone), then try update dst.
    if (99 == $timezone || !is_numeric($timezone)) {
        $date += dst_offset_on($date, $timezone);
    }
    $timezone = get_user_timezone_offset($timezone);
    // If we are running under Windows convert to windows encoding and then back to UTF-8
    // (because it's impossible to specify UTF-8 to fetch locale info in Win32)
    if (abs($timezone) > 13) {
        /// Server time
        $datestring = date_format_string($date, $format, $timezone);
        if ($fixday) {
            $daystring = ltrim(str_replace(array(' 0', ' '), '', strftime(' %d', $date)));
            $datestring = str_replace('DD', $daystring, $datestring);
        }
        if ($fixhour) {
            $hourstring = ltrim(str_replace(array(' 0', ' '), '', strftime(' %I', $date)));
            $datestring = str_replace('HH', $hourstring, $datestring);
        }
    } else {
        $date += (int) ($timezone * 3600);
        $datestring = date_format_string($date, $format, $timezone);
        if ($fixday) {
            $daystring = ltrim(str_replace(array(' 0', ' '), '', gmstrftime(' %d', $date)));
            $datestring = str_replace('DD', $daystring, $datestring);
        }
        if ($fixhour) {
            $hourstring = ltrim(str_replace(array(' 0', ' '), '', gmstrftime(' %I', $date)));
            $datestring = str_replace('HH', $hourstring, $datestring);
        }
    }
    return $datestring;
}
コード例 #7
0
ファイル: structure.php プロジェクト: evltuma/moodle
 /**
  * Returns a formatted string that represents a date in user time.
  *
  * Returns a formatted string that represents a date in user time
  * <b>WARNING: note that the format is for strftime(), not date().</b>
  * Because of a bug in most Windows time libraries, we can't use
  * the nicer %e, so we have to use %d which has leading zeroes.
  * A lot of the fuss in the function is just getting rid of these leading
  * zeroes as efficiently as possible.
  *
  * If parameter fixday = true (default), then take off leading
  * zero from %d, else maintain it.
  *
  * @param int $time the timestamp in UTC, as obtained from the database
  * @param string $format strftime format
  * @param int|float|string $timezone the timezone to use
  *        {@link http://docs.moodle.org/dev/Time_API#Timezone}
  * @param bool $fixday if true then the leading zero from %d is removed,
  *        if false then the leading zero is maintained
  * @param bool $fixhour if true then the leading zero from %I is removed,
  *        if false then the leading zero is maintained
  * @return string the formatted date/time
  */
 public function timestamp_to_date_string($time, $format, $timezone, $fixday, $fixhour)
 {
     global $CFG;
     if (empty($format)) {
         $format = get_string('strftimedaydatetime', 'langconfig');
     }
     if (!empty($CFG->nofixday)) {
         // Config.php can force %d not to be fixed.
         $fixday = false;
     } else {
         if ($fixday) {
             $formatnoday = str_replace('%d', 'DD', $format);
             $fixday = $formatnoday != $format;
             $format = $formatnoday;
         }
     }
     // Note: This logic about fixing 12-hour time to remove unnecessary leading
     // zero is required because on Windows, PHP strftime function does not
     // support the correct 'hour without leading zero' parameter (%l).
     if (!empty($CFG->nofixhour)) {
         // Config.php can force %I not to be fixed.
         $fixhour = false;
     } else {
         if ($fixhour) {
             $formatnohour = str_replace('%I', 'HH', $format);
             $fixhour = $formatnohour != $format;
             $format = $formatnohour;
         }
     }
     $time = (int) $time;
     // Moodle allows rubbish in input...
     $datestring = date_format_string($time, $format, $timezone);
     date_default_timezone_set(\core_date::get_user_timezone($timezone));
     if ($fixday) {
         $daystring = ltrim(str_replace(array(' 0', ' '), '', strftime(' %d', $time)));
         $datestring = str_replace('DD', $daystring, $datestring);
     }
     if ($fixhour) {
         $hourstring = ltrim(str_replace(array(' 0', ' '), '', strftime(' %I', $time)));
         $datestring = str_replace('HH', $hourstring, $datestring);
     }
     \core_date::set_default_server_timezone();
     return $datestring;
 }