Fix two time zone calculation bugs, thanks to david white for the
authorkink <kink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 21 Nov 2004 11:35:33 +0000 (11:35 +0000)
committerkink <kink@7612ce4b-ef26-0410-bec9-ea0150e637f0>
Sun, 21 Nov 2004 11:35:33 +0000 (11:35 +0000)
excellent analysis; verified by me to be correct solutions.
Closes: #1063879

git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@8386 7612ce4b-ef26-0410-bec9-ea0150e637f0

ChangeLog
functions/date.php

index 35230e8ff18d9a95703fcf882cba94712cd90b2c..c489bc4a0969e66e73613df7c260652b90878108 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -155,6 +155,7 @@ Version 1.5.1 -- CVS
   - LDAP backend will use internal squirrelmail charset conversion functions
     instead of php xml extension. Fixes bug #655137.
   - Added Wood theme and Silver Steel theme by Pavel Spatny and Simple Green theme
+  - Fix two time zone calculation bugs, thanks to David White
 
 Version 1.5.0
 --------------------
index 8b8d49c68097a7f581f79ba4b421eb3cfb001bc8..65db2003b21b90f591e2a043b42d78b47242a539 100644 (file)
@@ -349,8 +349,16 @@ function getDateString( $stamp ) {
     if ($invert_time) {
         $dateZ = - $dateZ;
     }
+
+    // calculate when it was midnight and when it will be,
+    // in order to display dates differently if they're 'today'
     $midnight = $now - ($now % 86400) - $dateZ;
-    $nextmid = $midnight + 86400 - $dateZ;
+    // this is to correct if after calculations midnight is more than
+    // one whole day away.
+    if ($now - $midnight > 86400) {
+        $midnight += 86400;
+    }
+    $nextmid = $midnight + 86400;
 
     if (($show_full_date == 1) || ($nextmid < $stamp)) {
         $date_format = _("M j, Y");
@@ -447,4 +455,4 @@ function getTimeStamp($dateParts) {
       return ($mtime);
    }
 */
-?>
\ No newline at end of file
+?>