]> git.mjollnir.org Git - moodle.git/commitdiff
Fixes to functions relating to user timezones
authormartin <martin>
Mon, 10 Jun 2002 09:43:40 +0000 (09:43 +0000)
committermartin <martin>
Mon, 10 Jun 2002 09:43:40 +0000 (09:43 +0000)
lib/moodlelib.php

index 6cd2e0d457cc362c7b15159defdac82ff611cb04..8f8b41ae961af341f30ca5fec6a4bdbe1c207cb3 100644 (file)
@@ -204,6 +204,7 @@ function update_module_icon($moduleid) {
 
 
 function userdate($date, $format="", $timezone=99) {
+// Returns a formatted string that represents a date in user time
     global $USER;
 
     if ($format == "") {
@@ -213,12 +214,13 @@ function userdate($date, $format="", $timezone=99) {
         $timezone = (float)$USER->timezone;
     }
     if (abs($timezone) > 12) {
-        return date("$format T", $date);
+        return date("$format", $date);
     }
     return gmdate($format, $date + (int)($timezone * 3600));
 }
 
 function usergetdate($date, $timezone=99) {
+// Returns an array that represents a date in user time
     global $USER;
 
     if ($timezone == 99) {
@@ -227,7 +229,41 @@ function usergetdate($date, $timezone=99) {
     if (abs($timezone) > 12) {
         return getdate($date);
     }
-    return getdate($date + (int)($timezone * 3600));
+    return getdate($date - (int)($timezone * 3600));
+}
+
+function usertime($date, $timezone=99) {
+// Given a GMT timestamp (seconds since epoch), offsets it by 
+// the timezone.  eg 3pm in India is 3pm GMT - 7 * 3600 seconds
+    global $USER;
+
+    if ($timezone == 99) {
+        $timezone = (float)$USER->timezone;
+    }
+    if (abs($timezone) > 12) {
+        return $date;
+    }
+    return $date - (int)($timezone * 3600);
+}
+
+function usertimezone($timezone=99) {
+// returns a string that prints the user's timezone
+    global $USER;
+
+    if ($timezone == 99) {
+        $timezone = (float)$USER->timezone;
+    }
+    if (abs($timezone) > 12) {
+        return "server time";
+    }
+    if (abs($timezone) < 0.5) {
+        return "GMT";
+    }
+    if ($timezone > 0) {
+        return "GMT+$timezone";
+    } else {
+        return "GMT$timezone";
+    }
 }