From 24d38a6e6d311467cbccdd1a82594db508b95187 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Fri, 8 Jan 2010 06:56:29 +0000 Subject: [PATCH] moodlelib MDL-20918 usergetdate was returning an array in a different order depending on whether or not timezone was set --- lib/moodlelib.php | 19 +++++++++-------- lib/simpletest/testmoodlelib.php | 35 ++++++++++++++++++++++++++++++-- 2 files changed, 43 insertions(+), 11 deletions(-) diff --git a/lib/moodlelib.php b/lib/moodlelib.php index b4b860d4d6..048425c9a6 100644 --- a/lib/moodlelib.php +++ b/lib/moodlelib.php @@ -1511,19 +1511,20 @@ function usergetdate($time, $timezone=99) { $time += dst_offset_on($time, $strtimezone); $time += intval((float)$timezone * HOURSECS); - $datestring = gmstrftime('%S_%M_%H_%d_%m_%Y_%w_%j_%A_%B', $time); + $datestring = gmstrftime('%B_%A_%j_%Y_%m_%w_%d_%H_%M_%S', $time); + //be careful to ensure the returned array matches that produced by getdate() above list( - $getdate['seconds'], - $getdate['minutes'], - $getdate['hours'], - $getdate['mday'], - $getdate['mon'], + $getdate['month'], + $getdate['weekday'], + $getdate['yday'], $getdate['year'], + $getdate['mon'], $getdate['wday'], - $getdate['yday'], - $getdate['weekday'], - $getdate['month'] + $getdate['mday'], + $getdate['hours'], + $getdate['minutes'], + $getdate['seconds'] ) = explode('_', $datestring); return $getdate; diff --git a/lib/simpletest/testmoodlelib.php b/lib/simpletest/testmoodlelib.php index b3cab058c5..2a7eb8162d 100644 --- a/lib/simpletest/testmoodlelib.php +++ b/lib/simpletest/testmoodlelib.php @@ -386,6 +386,37 @@ class moodlelib_test extends UnitTestCase { shorten_text($text, 8)); } + function test_usergetdate() { + $ts = 1261540267; //the time this function was created + + $arr = usergetdate($ts,1); + $arr = array_values($arr); + + list($seconds,$minutes,$hours,$mday,$wday,$mon,$year,$yday,$weekday,$month) = $arr; + $this->assertEqual($seconds,7); + $this->assertEqual($minutes,51); + $this->assertEqual($hours,4); + $this->assertEqual($mday,23); + $this->assertEqual($wday,3); + $this->assertEqual($mon,12); + $this->assertEqual($year,2009); + $this->assertEqual($yday,357); + $this->assertEqual($weekday,'Wednesday'); + $this->assertEqual($month,'December'); + + $arr = usergetdate($ts); + $arr = array_values($arr); + + list($seconds,$minutes,$hours,$mday,$wday,$mon,$year,$yday,$weekday,$month) = $arr; + $this->assertEqual($seconds,7); + $this->assertEqual($minutes,51); + $this->assertEqual($hours,11); + $this->assertEqual($mday,23); + $this->assertEqual($wday,3); + $this->assertEqual($mon,12); + $this->assertEqual($year,2009); + $this->assertEqual($yday,356); + $this->assertEqual($weekday,'Wednesday'); + $this->assertEqual($month,'December'); + } } - - -- 2.39.5