X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=functions%2Fdate.php;h=6cb4b68ccc9b74cc57bf5bff2c0e62247cc1908c;hb=ec0b7dbda5eb9490db1a41c45f6d1d76b708fb7e;hp=c884c7180dcfee8cb90fee50bc1ff2b86cbbed86;hpb=9774bdefb84a93bc71218da6234b8410b1c0e786;p=squirrelmail.git diff --git a/functions/date.php b/functions/date.php index c884c718..6cb4b68c 100644 --- a/functions/date.php +++ b/functions/date.php @@ -1,4 +1,4 @@ - Mon, Tue, Wed ** $dateParts[1] == 23 ** $dateParts[2] == Jan, Feb, Mar @@ -126,64 +104,34 @@ ** and everything would be bumped up one. **/ - /* if the first part is a day */ - if (eregi("mon|tue|wed|thu|fri|sat|sun", trim($dateParts[0]), $tmp)) { - $dateParts[0] = getDayOfWeek(trim($dateParts[0])); - $dateParts[1] = getDayOfMonth(trim($dateParts[1])); - $dateParts[2] = getMonth(trim($dateParts[2])); - $dateParts[3] = getYear(trim($dateParts[3])); - return "$dateParts[2] $dateParts[1], $dateParts[3]"; - } - $dateParts[0] = getDayOfMonth(trim($dateParts[0])); - $dateParts[1] = getMonth(trim($dateParts[1])); - $dateParts[2] = getYear(trim($dateParts[2])); - return "$dateParts[1] $dateParts[0], $dateParts[2]"; - } - - function getTimeStamp($dateParts) { - if (eregi("mon|tue|wed|thu|fri|sat|sun", $dateParts[0], $tmp)) { - $d[0] = getHour(trim($dateParts[4])); - $d[1] = getMinute(trim($dateParts[4])); - $d[2] = getSecond(trim($dateParts[4])); - $d[3] = getMonthNum(trim($dateParts[2])); - $d[4] = getDayOfMonth(trim($dateParts[1])); - $d[5] = getYear(trim($dateParts[3])); - return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]); + // Simply check to see if the first element in the dateParts + // array is an integer or not. + // Since the day of week is optional, this check is needed. + // + // The old code used eregi("mon|tue|wed|thu|fri|sat|sun", + // $dateParts[0], $tmp) to find if the first element was the + // day of week or day of month. This is an expensive call + // (processing time) to have inside a loop. Doing it this way + // saves quite a bit of time for large mailboxes. + // + // It is also quicker to call explode only once rather than + // the 3 times it was getting called by calling the functions + // getHour, getMinute, and getSecond. + // + if (intval(trim($dateParts[0])) > 0) { + $string = $dateParts[0] . " " . $dateParts[1] . " " . $dateParts[2] . " " . $dateParts[3]; + return getGMTSeconds(strtotime($string), $dateParts[4]); } - $d[0] = getHour(trim($dateParts[3])); - $d[1] = getMinute(trim($dateParts[3])); - $d[2] = getSecond(trim($dateParts[3])); - $d[3] = getMonthNum(trim($dateParts[1])); - $d[4] = getDayOfMonth(trim($dateParts[0])); - $d[5] = getYear(trim($dateParts[2])); - return mktime($d[0], $d[1], $d[2], $d[3], $d[4], $d[5]); + $string = $dateParts[0] . " " . $dateParts[1] . " " . $dateParts[2] . " " . $dateParts[3] . " " . $dateParts[4]; + return getGMTSeconds(strtotime($string), $dateParts[5]); } - function getLongDateString($dateParts) { - if (eregi("mon|tue|wed|thu|fri|sat|sun", trim($dateParts[0]), $tmp)) { - $date[0] = getDayOfMonth(trim($dateParts[1])); - $date[1] = getMonth(trim($dateParts[2])); - $date[2] = getYear(trim($dateParts[3])); - $date[3] = getHour(trim($dateParts[4])); - $date[4] = getMinute(trim($dateParts[4])); - } else { - $date[0] = getDayOfMonth(trim($dateParts[0])); - $date[1] = getMonth(trim($dateParts[1])); - $date[2] = getYear(trim($dateParts[2])); - $date[3] = getHour(trim($dateParts[3])); - $date[4] = getMinute(trim($dateParts[4])); - } - - if ($date[3] >= 12) { - $date[5] = "p.m."; - if ($date[3] >= 13) - $date[3] = $date[3] - 12; - } else { - $date[5] = "a.m."; - if ($date[3] < 1) - $date[3] = 12; - } - - return "$date[1] $date[0], $date[2]   $date[3]:$date[4] $date[5]"; + // I use this function for profiling. Should never be called in + // actual versions of squirrelmail released to public. + function getmicrotime() { + $mtime = microtime(); + $mtime = explode(" ",$mtime); + $mtime = $mtime[1] + $mtime[0]; + return ($mtime); } ?>