Next/Previous are working a bit better
[squirrelmail.git] / functions / date.php3
index f900868..9e07dc7 100644 (file)
@@ -1,18 +1,13 @@
 <?
-   //*************************************************************************
-   // Takes a date and parses it into usable format
-   //
-   // Tue, 29 Jun 1999 09:52:11 -0500 (EDT)
-   //
-   // $dateParts[0] == <day of week>   Mon, Tue, Wed
-   // $dateParts[1] == <day of month>  23
-   // $dateParts[2] == <month>         Jan, Feb, Mar
-   // $dateParts[3] == <year>          1999
-   // $dateParts[4] == <time>          18:54:23 (HH:MM:SS)
-   // $dateParts[5] == <from GMT>      +0100
-   // $dateParts[6] == <zone>          (EDT)
-   //
-   //*************************************************************************
+   /**
+    **  date.php3
+    **
+    **  Takes a date and parses it into a usable format.  The form that a
+    **  date SHOULD arrive in is:
+    **        <Tue,> 29 Jun 1999 09:52:11 -0500 (EDT)
+    **  (as specified in RFC 822) -- "Tue" is optional
+    **
+    **/
 
    function getHour($hour) {
       $time = explode(":", $hour);
    }
 
    function getDateString($dateParts) {
+      /** $dateParts[0] == <day of week>   Mon, Tue, Wed
+       ** $dateParts[1] == <day of month>  23
+       ** $dateParts[2] == <month>         Jan, Feb, Mar
+       ** $dateParts[3] == <year>          1999
+       ** $dateParts[4] == <time>          18:54:23 (HH:MM:SS)
+       ** $dateParts[5] == <from GMT>      +0100
+       ** $dateParts[6] == <zone>          (EDT)
+       **
+       ** NOTE:  In RFC 822, it states that <day of week> is optional.
+       **        In that case, dateParts[0] would be the <day of month>
+       **        and everything would be bumped up one.
+       **/
+
       /* if the first part is a day */
       if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) {
          $dateParts[0] = getDayOfWeek($dateParts[0]);
    }
 
    function getTimeStamp($dateParts) {
-      $d[0] = getHour($dateParts[4]);
-      $d[1] = getMinute($dateParts[4]);
-      $d[2] = getSecond($dateParts[4]);
-      $d[3] = getMonthNum($dateParts[2]);
-      $d[4] = getDayOfMonth($dateParts[1]);
-      $d[5] = getYear($dateParts[3]);
+      if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) {
+         $d[0] = getHour($dateParts[4]);
+         $d[1] = getMinute($dateParts[4]);
+         $d[2] = getSecond($dateParts[4]);
+         $d[3] = getMonthNum($dateParts[2]);
+         $d[4] = getDayOfMonth($dateParts[1]);
+         $d[5] = getYear($dateParts[3]);
+         return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
+      }
+      $d[0] = getHour($dateParts[3]);
+      $d[1] = getMinute($dateParts[3]);
+      $d[2] = getSecond($dateParts[3]);
+      $d[3] = getMonthNum($dateParts[1]);
+      $d[4] = getDayOfMonth($dateParts[0]);
+      $d[5] = getYear($dateParts[2]);
       return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]);
    }
 ?>