ID: 14115
Updated by: hholzgra
Reported By: [EMAIL PROTECTED]
Old Status: Bogus
Status: Open
Old Bug Type: Date/time related
Bug Type: Documentation problem
Operating System: SuSE Linux 7.1
PHP Version: 4.0.6
New Comment:

the manual does tell about the 1900 offset
for tm_year but not about tm_month starting
at 0

Previous Comments:
------------------------------------------------------------------------

[2001-11-19 08:43:46] [EMAIL PROTECTED]

tm_year is defined to be the number of years since 1900, so 101 is correct, and tm_mon 
starts with January = 0.  This is to match the libc function of the same name.  Do a 
"man localtime" on your system for proof.

------------------------------------------------------------------------

[2001-11-19 08:37:25] [EMAIL PROTECTED]

/* 

Output from my attached PHP script:

-output starts here-
Server script path: /httpd/kunden/admbping/de/bigping/www/localtime_y2k.php


original 'localtime()' function:

tm_sec => 41
tm_min => 14
tm_hour => 14
tm_mday => 19
tm_mon => 10
tm_year => 101
tm_wday => 1
tm_yday => 322
tm_isdst => 0

my 'localtime_y2k()' function:

tm_sec => 41
tm_min => 14
tm_hour => 14
tm_mday => 19
tm_mon => 11
tm_year => 2001
tm_wday => 1
tm_yday => 322
tm_isdst => 0
-output ends here-


'date' command in bash:

localhost:/httpd/kunden/admbping/de/bigping/www # date
Mon Nov 19 14:14:57 CET 2001

*/

<?
function localtime_y2k ($time, $is_ass) {
        $t_arr = localtime ($time, $is_ass);
        if ($is_ass == 0) {
                $t_arr[5] = $t_arr[5] + 1900;
                $t_arr[4] = $t_arr[4] + 1;
        }
        if ($is_ass == 1) {
                $t_arr["tm_year"] = $t_arr["tm_year"] + 1900;
                $t_arr["tm_mon"] = $t_arr["tm_mon"] + 1;
        }
        return $t_arr;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd";>
<html lang=en_us>
        <head>
                <meta http-equiv=content-type content="text/html; charset=iso-8859-1">
                <title>
                        Untitled
                </title>
        </head>
        <body bgcolor="#FFFFFF">
<?
$the_time = time();
$timearray_old = localtime ($the_time, 1);
$timearray = localtime_y2k ($the_time, 1);
echo "Server script path: ".getenv ("SCRIPT_FILENAME");
echo "<br><br><br>original 'localtime()' function:<br><br>";
while (list ($key, $val) = each ($timearray_old)) {
    echo "$key => $val<br>";
}
echo "<br><br><br>my 'localtime()' function:<br><br>";
while (list ($key, $val) = each ($timearray)) {
    echo "$key => $val<br>";
}
?> 
        </body>
</html>


------------------------------------------------------------------------



Edit this bug report at http://bugs.php.net/?id=14115&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to