#14313 [Bgs]: strtotime() and mktime() errors for dates before 1970

From: Date: Thu, 14 Nov 2002 08:21:46 +0000
Subject: #14313 [Bgs]: strtotime() and mktime() errors for dates before 1970
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-24865@lists.php.net to get a copy of this message
ID: 14313 Updated by: rasmus@php.net Reported By: vipm@mac.com Status: Bogus Bug Type: Date/time related Operating System: windows98 PHP Version: 4.0.6 New Comment: There are plenty of other time formats you can use for this. See the calendar functions at php.net/calendar. Previous Comments: ------------------------------------------------------------------------ [2002-11-14 01:27:26] magician@romantissimo.com Classifying this bug as "bogus" is simply not satisfactory. The function is obviously using the wrong int size and messing up on unix times less than 1970-01-01 (Unix time zero). This is DEFINATELY a serious and fatal bug. How can you validate a birthdate if customers are not allowed to be older that 32? ------------------------------------------------------------------------ [2002-07-07 22:59:22] kfleming54@hotmail.com I agree with jasonh@trurocollege.ac.uk. There has to be a fix or workaround. If windows is returning a different format or whatever, there should be a configuration param or a different routine provided. Just like javascript and other script engines have to deal with Microsofts demand that everyone conform to them. ------------------------------------------------------------------------ [2002-05-08 11:29:04] jasonh@trurocollege.ac.uk This still happens in PHP 4.2.0 under WinNT (dates before 1970 are invalid). This makes it hard to use PHP with the MSSQL extension since it converts fields to strings, and therefore you *need* to be able to convert the strings it generates (such as "Sep 1 1969 12:00AM") to timestamps if you want to perform any manipulations (or present the date in a better format). Obviously, Windows *can* cope with dates before 1970, as can every Windows application I know of, so it's very hard to understand *why* PHP is unique in not being able to cope. Is there not even a workaround? ------------------------------------------------------------------------ [2001-12-02 06:28:41] derick@php.net Not a bug... PHP uses the native system calls for this. The windows API simply returns different (wrong) results. There is nothing that can be done about it. Derick ------------------------------------------------------------------------ [2001-12-01 23:13:55] vipm@mac.com In PHP 4.0.6 for Linux and MacOSX, strtotime() and mktime() functions produce correct output for dates before 1970, but in Windows98 and Windows2000, I get an error (-1), e.g., strtotime("1965-3-12") ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=14313&edit=1

« previous php.bugs (#24865) next »