ID: 35887 Updated by: [EMAIL PROTECTED] Reported By: mattsch at gmail dot com Status: Open Bug Type: WDDX related Operating System: Gentoo PHP Version: 5.1.1 New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [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) ------------------------------------------------------------------------ [2006-01-04 00:48:49] mattsch at gmail dot com Also note under Time zone processing: http://livedocs.macromedia.com/coldfusion/6/Developing_ColdFusion_MX_Applications_with_CFML/XML11.htm Date-time values in WDDX are represented using a subset of the ISO8601 format. Time zone information is represented as an hour/minute offset from Coordinated Universal Time (UTC); for example, "2002-9-8T12:6:26-4:0". ------------------------------------------------------------------------ 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