From:             [EMAIL PROTECTED]
Operating system: solaris 2.7
PHP version:      4.1.2
PHP Bug Type:     Date/time related
Bug description:  timezone incorrect in date

The following:

print date( "r Z T", time() );
print gmdate( "r Z T", time() );

Gives this output:

Tue, 14 May 2002 22:56:09 +0100 3600 GMT
Tue, 14 May 2002 21:56:09 +0000 0 GMT Standard Time

Comment:

Internally solaris creates an integer named
daylight after localtime() is called if an
alternate time zone is in use.

PHP ignores this and always uses tzname[0]

Quick fix:

diff ext/standard/datetime.c~ ext/standard/datetime.c
256c256,259
<               tname[0] = tzname[0];
---
>               if( daylight )
>                tname[0] = tzname[1];
>               else
>                tname[0] = tzname[0];

After patching the PHP code produces:

Wed, 15 May 2002 00:13:40 +0100 3600 BST
Tue, 14 May 2002 23:13:40 +0000 0 GMT Standard Time

-- 
Edit bug report at http://bugs.php.net/?id=17228&edit=1
-- 
Fixed in CVS:        http://bugs.php.net/fix.php?id=17228&r=fixedcvs
Fixed in release:    http://bugs.php.net/fix.php?id=17228&r=alreadyfixed
Need backtrace:      http://bugs.php.net/fix.php?id=17228&r=needtrace
Try newer version:   http://bugs.php.net/fix.php?id=17228&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=17228&r=support
Expected behavior:   http://bugs.php.net/fix.php?id=17228&r=notwrong
Not enough info:     http://bugs.php.net/fix.php?id=17228&r=notenoughinfo
Submitted twice:     http://bugs.php.net/fix.php?id=17228&r=submittedtwice
register_globals:    http://bugs.php.net/fix.php?id=17228&r=globals

Reply via email to