ID: 35414 Updated by: [EMAIL PROTECTED] Reported By: km at somehowbythesea dot org dot uk -Status: Open +Status: Closed Bug Type: Date/time related Operating System: Linux PHP Version: 5.1.1 Assigned To: derick New Comment:
Works fine: [EMAIL PROTECTED]:/dat/dev/php/php-5.1dev$ sapi/cli/php -v PHP 5.1.2RC2-dev (cli) (built: Jan 4 2006 11:24:53) (DEBUG) Copyright (c) 1997-2005 The PHP Group Zend Engine v2.1.0, Copyright (c) 1998-2005 Zend Technologies [EMAIL PROTECTED]:/dat/dev/php/php-5.1dev$ sapi/cli/php -r 'var_dump(strtotime("Sat 26th Nov 2005 18:18"));' int(1133025480) [EMAIL PROTECTED]:/dat/dev/php/php-5.1dev$ sapi/cli/php -r 'echo date(DATE_ISO8601, strtotime("Sat 26th Nov 2005 18:18")), "\n";' 2005-11-26T18:18:00+0100 Previous Comments: ------------------------------------------------------------------------ [2006-01-05 07:45:50] km at somehowbythesea dot org dot uk The strtotime function still fails to produce a UNIX timestamp from strings where the date - a number with it's ordinal suffix - precedes the month. For example, "Sat Nov 26th 2005 18:18" will produce a timestamp but "Sat 26th Nov 2005 18:18" will not. ------------------------------------------------------------------------ [2005-11-29 02:23:41] [EMAIL PROTECTED] This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. ------------------------------------------------------------------------ [2005-11-26 22:16:26] [EMAIL PROTECTED] Assigned to the author. ------------------------------------------------------------------------ [2005-11-26 22:12:43] km at somehowbythesea dot org dot uk Description: ------------ In PHP4.3, strtotime() will parse days of the month with and ordinal suffix, in the format "Sat 26th Nov 2005 18:18", however this is no longer possible in PHP5.1. The same string without the ordinal suffix ("Sat 26 Nov 2005 18:18") returns a timestamp as expected. I apologize in advance if this should now be listed as a feature request instead of a bug. In version 4.0.5 this problem was reported as a bug (#15210) when in fact the parsing of ordinals was not actually a feature at the time. Following that, the feature was added in CVS and was still working at version 4.3. Reproduce code: --------------- <? $tWithOrd = "Sat 26th Nov 2005 18:18"; $tWithoutOrd = "Sat 26 Nov 2005 18:18"; $UtimeWithOrd = strtotime($tWithOrd); $UtimeWithoutOrd = strtotime($tWithoutOrd); print("time string with ordinal suffix: $tWithOrd<br>"); print("time string without ordinal suffix: $tWithoutOrd<br><br>"); print("UNIX timestamp from time string with ordinal suffix: $UtimeWithOrd<br>"); print("UNIX timestamp from time string without ordinal suffix: $UtimeWithoutOrd<br><br>"); ?> Expected result: ---------------- Both variables $UtimeWithOrd and $UtimeWithoutOrd should contain a UNIX timestamp, printing it to screen with the last two lines. Actual result: -------------- Only the variable $UtimeWithoutOrd contains a timestamp. $UtimeWithOrd is empty and prints nothing. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=35414&edit=1