ID: 35887 User updated by: mattsch at gmail dot com Reported By: mattsch at gmail dot com Status: Assigned Bug Type: Feature/Change Request Operating System: Gentoo PHP Version: 5.1.1 Assigned To: derick New Comment:
I also looked at ISO 8601 and even previous versions because the DTD was written in 1999, but I couldn't find any mention of truncating leading zeros in the standard despite the fact that the wddx DTD says it's possible. Thanks for implementing a patch to keep compatibility nevertheless. Previous Comments: ------------------------------------------------------------------------ [2006-01-04 09:41:01] [EMAIL PROTECTED] I did some investigations. http://www.openwddx.org/downloads/dtd/wddx_dtd_10.txt states (written by allaire, which was bought by macromedia): "Date-time values are encoded according to the full form of ISO8601, e.g., 1998-9-15T09:05:32+4:0." All documents on ISO8601 (including the standard) only give this format: YYYY-MM-DD or YYYYMMDD Single digits are not allowed. So the WDDX DTD is flawed itself, it doesn't do what it says it does (ie. They say they use full ISO8601, but they don't). I find that incredible stupid. I am marking this as a feature request for now, I do have a patch but I want to see its performance impacts on the parser first before committing it. It might not make it into PHP 5.1.2. ------------------------------------------------------------------------ [2006-01-04 03:04:10] mattsch at gmail dot com Here's the code from this link: http://www.silvertoncasino.com/events/titles.cfm <cfsilent> <cfquery name="getTitles" datasource="#request.dsn#"> SELECT startDate, eventID, (SELECT categoryID FROM categories WHERE cLink LIKE '/events/content%' LIMIT 0, 1) AS categoryID FROM events WHERE display = 1 AND endDate >= '#LSDateFormat(Now(), "yyyy-mm-dd")#' ORDER BY startDate, eventOrder </cfquery> <cfwddx action="cfml2wddx" input="#getTitles#" output="wddxXML"> </cfsilent><cfheader name="Content-Type" value="text/xml;charset=utf-8"><?xml version="1.0" encoding="UTF-8"?> <cfoutput>#wddxXML#</cfoutput> You'll notice that Coldfusion produces the output using the cfwddx tag. So you will be breaking compatibility with Coldfusion wddx when you don't fix this bug. ------------------------------------------------------------------------ [2006-01-04 02:54:49] mattsch at gmail dot com At the very least since you guys seem willing to break backwards compatibility, make a note of it in the PHP docs that as of PHP 5.1.1, wddx dateTimes serialized with coldfusion will no longer be deserialized into unix timestamps as they previously were under PHP 5.0.4. ------------------------------------------------------------------------ [2006-01-04 02:51:28] mattsch at gmail dot com Again this is not bogus. Coldfusion does not output leading zeros. PHP 5.0.4 runs this code fine. On PHP 5.1.1, I get notices because it no longer parses the dateTime into a unix timestamp. Why is it so hard to fix this bug and make it work like it did in PHP 5.0.4? On the wddx DTD, it makes this statement: Note that single-digit values for months, days, hours, minutes, or seconds do not need to be zero-prefixed. ------------------------------------------------------------------------ [2006-01-04 01:47:05] [EMAIL PROTECTED] From: http://www.openwddx.org/downloads/dtd/wddx_dtd_10.txt . . <dateTime>1998-06-12T04:32:12</dateTime> . . Which is the one PHP works fine with. (Even PHP 4.3.11 worked) ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/35887 -- Edit this bug report at http://bugs.php.net/?id=35887&edit=1