Monday, October 22, 2007

small bug in PhpMailer timezone code

As posted to phpmailer general mailing list:

In class.phpmailer.php 's function RFCDate(), there is a bug in the timezone code which returns +0580 for Indian Standard Time instead of +0530.

The line
$tz = ($tz/3600)*100 + ($tz%3600)/60;

should be replaced with

$tz = (($tz - ($tz%3600) )/3600)*100 + ($tz%3600)/60;

Found this bug in our phplist mails....

Edit: More info - http://in.php.net/operators.arithmetic has a comment which describes the integer division required:
nicolas_rainardNOSPAM at yahoo dot fr
10-Jul-2007 09:10
Here is another very simple and extremely fast integer division function, but it works only if the arguments are integers and nothing else. So use it only if you are sure of what you are doing.

function int_int_divide($x, $y) {
return ($x - ($x % $y)) / $y;
}

No comments:

Post a Comment