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

Reply via email to