From:             djmaze at planet dot nl
Operating system: Windows
PHP version:      5.1.6
PHP Bug Type:     Date/time related
Bug description:  Incorrect gmdate('U') and date_default_timezone_set()

Description:
------------
gmdate('U') shows the incorrect unix epoch.

http://php.net/gmdate: 'Format a GMT/UTC date/time'
http://php.net/date: 'U = Seconds since the Unix Epoch (January 1 1970
00:00:00 GMT)'

After calling date_default_timezone_set() everything is messed up, or is
that the whole purpose but someone forgot to document it?


Reproduce code:
---------------
<?php
function get_unixts()
{
        return array(
        'time()'   => time(),
        'date(\'U\')' => date('U'),
        'date(\'Z\')'  => date('Z'),
        'gmtime' => (time()-date('Z')),
        'gmdate(\'U\')' => gmdate('U'),
        'gmdate(\'Z\')' => gmdate('Z'),
        'date_default_timezone' => date_default_timezone_get(),
        );
}
$def = get_unixts();
date_default_timezone_set('UTC');
$set = get_unixts();

echo '<html><body><table
border="1"><tr><td>type</td><td>normal</td><td>after set UTC</td></tr>';
foreach ($def as $t => $v)
{
        echo "<tr><td>$t</td><td>$v</td><td>{$set[$t]}</td></tr>";
}
echo '</table></body></html>';
?>

Expected result:
----------------
type        normal      after set UTC
time()      1159732108  1159724908
date('U')   1159732108  1159724908
date('Z')   7200        0
gmtime      1159724908  1159724908
gmdate('U') 1159724908  1159724908
gmdate('Z') 0           0


Actual result:
--------------
type        normal      after set UTC
time()      1159732108  1159732108
date('U')   1159732108  1159732108
date('Z')   7200        0
gmtime      1159724908  1159732108
gmdate('U') 1159732108  1159732108
gmdate('Z') 0           0


-- 
Edit bug report at http://bugs.php.net/?id=39012&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=39012&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=39012&r=trysnapshot52
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=39012&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=39012&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=39012&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=39012&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=39012&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=39012&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=39012&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=39012&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=39012&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=39012&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=39012&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=39012&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=39012&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=39012&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=39012&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=39012&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=39012&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=39012&r=mysqlcfg

Reply via email to