#42640 [Asn->Opn]: error in date_parse function

From: Date: Sat, 08 Dec 2007 15:39:18 +0000
Subject: #42640 [Asn->Opn]: error in date_parse function
References: 1  Groups: php.doc.bugs 
Request: Send a blank email to doc-bugs+get-332@lists.php.net to get a copy of this message
ID: 42640 Updated by: derick@php.net Reported By: david at zschille dot net -Status: Assigned +Status: Open Bug Type: Documentation problem Operating System: Win XP PHP Version: 5CVS-2007-09-12 (snap) -Assigned To: derick +Assigned To: = Previous Comments: ------------------------------------------------------------------------ [2007-12-08 15:38:29] derick@php.net 19044 is not a 4-digit year, so that's why it doesn't get parsed "correctly" - there is a feature request for this already: http://bugs.php.net/bug.php?id=42351 And the other part, this function does not return FALSE, only in case you don't give it a parameter. THis is a documentation issue. ------------------------------------------------------------------------ [2007-09-13 09:44:47] jani@php.net Assigned to the ext/date maintainer. ------------------------------------------------------------------------ [2007-09-12 11:50:02] david at zschille dot net The PHP manual says about the return values: "Returns array on success or FALSE on failure". You can see here that it returns not FALSE but an array. Is the error in the manual or in the behavior of the function? To the string "19044-05-09": it get parsed as 19:04:00 2004-05-09. This is not correct. ------------------------------------------------------------------------ [2007-09-12 11:09:59] jani@php.net Can you please clarify what is the problem? As you can see, there are errors in the output for "abc123"..and yes, "19044-05-09" is valid date. Just very far in the future. ------------------------------------------------------------------------ [2007-09-12 08:50:08] david at zschille dot net Description: ------------ In the php manual is written that the parameter for date_parse should be a "Date in format accepted by strtotime()" and it "returns array on success or FALSE on failure". So if i give a not valid format to the function i expect a FALSE. Also interesting is the behavior of date_parse when i give the string "19044-05-09" to it. It produces no error and no warning message and seems to be valid!? But the string is also valid for strtotime(). Has this function also an error or is this string really valid? Reproduce code: --------------- var_dump( date_parse( 'abc123' ) ); Expected result: ---------------- bool false Actual result: -------------- array(13) { ["year"]=> bool(false) ["month"]=> bool(false) ["day"]=> bool(false) ["hour"]=> bool(false) ["minute"]=> bool(false) ["second"]=> bool(false) ["fraction"]=> bool(false) ["warning_count"]=> int(0) ["warnings"]=> array(0) { } ["error_count"]=> int(4) ["errors"]=> array(4) { [0]=> string(47) "The timezone could not be found in the database" [3]=> string(20) "Unexpected character" [4]=> string(20) "Unexpected character" [5]=> string(20) "Unexpected character" } ["is_localtime"]=> bool(true) ["zone_type"]=> int(0) } ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=42640&edit=1

« previous php.doc.bugs (#332) next »