If you look at an email that was sent to you during Daylight Saving Time after Daylight Saving Time has ended then the time reported on that email is out by an hour, you can easily check that by looking at the full headers for the email.
The reason for this is that the code which converts a time on an email works on the basis that it can check the time offset from GMT in the file functions/date.php in the function getGMTSeconds using the following bit of code:
$current = date('Z',time());
so it looks at the offset today rather than the offset as it was when the email was received during daylight savings time.
The fix is pretty simple, you just change the code to read:
$current = date('Z',$stamp);
then it works out the offset from GMT on the day the email was sent, which gives the right answer.
Actually it isn't quite that simple because Squirrelmail still only works correctly if you have set the timezone in your preferences rather than elected to use the server default. Using the server default it just guesses the timezone based on today's offset and you never get a working daylight saving time that way!
This bug exists in both the stable and development versions, so hopefully somebody will take this opportunity to fix it in both.
Log in to post a comment.