bjori Tue May 30 14:46:46 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/date php_date.c /php-src/ext/date/tests date_constants.phpt Log: MFH: Fixed DATE_COOKIE, DATE_RSS & tests http://cvs.php.net/viewcvs.cgi/php-src/ext/date/php_date.c?r1=1.43.2.45.2.4&r2=1.43.2.45.2.5&diff_format=u Index: php-src/ext/date/php_date.c diff -u php-src/ext/date/php_date.c:1.43.2.45.2.4 php-src/ext/date/php_date.c:1.43.2.45.2.5 --- php-src/ext/date/php_date.c:1.43.2.45.2.4 Tue May 30 13:12:21 2006 +++ php-src/ext/date/php_date.c Tue May 30 14:46:45 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_date.c,v 1.43.2.45.2.4 2006/05/30 13:12:21 derick Exp $ */ +/* $Id: php_date.c,v 1.43.2.45.2.5 2006/05/30 14:46:45 bjori Exp $ */ #include "php.h" #include "php_streams.h" @@ -339,8 +339,21 @@ #ifdef EXPERIMENTAL_DATE_SUPPORT date_register_classes(TSRMLS_C); #endif +/* + * RFC4287, Section 3.3: http://www.ietf.org/rfc/rfc4287.txt + * A Date construct is an element whose content MUST conform to the + * "date-time" production in [RFC3339]. In addition, an uppercase "T" + * character MUST be used to separate date and time, and an uppercase + * "Z" character MUST be present in the absence of a numeric time zone offset. + */ REGISTER_STRING_CONSTANT("DATE_ATOM", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); - REGISTER_STRING_CONSTANT("DATE_COOKIE", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); +/* + * Preliminary specification: http://wp.netscape.com/newsref/std/cookie_spec.html + * "This is based on RFC 822, RFC 850, RFC 1036, and RFC 1123, + * with the variations that the only legal time zone is GMT + * and the separators between the elements of the date must be dashes." + */ + REGISTER_STRING_CONSTANT("DATE_COOKIE", DATE_FORMAT_RFC850, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_ISO8601", DATE_FORMAT_ISO8601, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC822", DATE_FORMAT_RFC822, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC850", DATE_FORMAT_RFC850, CONST_CS | CONST_PERSISTENT); @@ -348,7 +361,11 @@ REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC2822", DATE_FORMAT_RFC2822, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_RFC3339", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); - REGISTER_STRING_CONSTANT("DATE_RSS", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT); +/* + * RSS 2.0 Specification: http://blogs.law.harvard.edu/tech/rss + * "All date-times in RSS conform to the Date and Time Specification of RFC 822" + */ + REGISTER_STRING_CONSTANT("DATE_RSS", DATE_FORMAT_RFC822, CONST_CS | CONST_PERSISTENT); REGISTER_STRING_CONSTANT("DATE_W3C", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("SUNFUNCS_RET_TIMESTAMP", SUNFUNCS_RET_TIMESTAMP, CONST_CS | CONST_PERSISTENT); @@ -1285,7 +1302,7 @@ zend_declare_class_constant_stringl(date_ce_date, const_name, sizeof(const_name)-1, value, sizeof(value)-1 TSRMLS_CC); REGISTER_DATE_CLASS_CONST_STRING("ATOM", DATE_FORMAT_RFC3339); - REGISTER_DATE_CLASS_CONST_STRING("COOKIE", DATE_FORMAT_RFC1123); + REGISTER_DATE_CLASS_CONST_STRING("COOKIE", DATE_FORMAT_RFC850); REGISTER_DATE_CLASS_CONST_STRING("ISO8601", DATE_FORMAT_ISO8601); REGISTER_DATE_CLASS_CONST_STRING("RFC822", DATE_FORMAT_RFC822); REGISTER_DATE_CLASS_CONST_STRING("RFC850", DATE_FORMAT_RFC850); @@ -1293,7 +1310,7 @@ REGISTER_DATE_CLASS_CONST_STRING("RFC1123", DATE_FORMAT_RFC1123); REGISTER_DATE_CLASS_CONST_STRING("RFC2822", DATE_FORMAT_RFC2822); REGISTER_DATE_CLASS_CONST_STRING("RFC3339", DATE_FORMAT_RFC3339); - REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC1123); + REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC822); REGISTER_DATE_CLASS_CONST_STRING("W3C", DATE_FORMAT_RFC3339); http://cvs.php.net/viewcvs.cgi/php-src/ext/date/tests/date_constants.phpt?r1=1.1.2.3&r2=1.1.2.4&diff_format=u Index: php-src/ext/date/tests/date_constants.phpt diff -u php-src/ext/date/tests/date_constants.phpt:1.1.2.3 php-src/ext/date/tests/date_constants.phpt:1.1.2.4 --- php-src/ext/date/tests/date_constants.phpt:1.1.2.3 Tue May 30 13:14:51 2006 +++ php-src/ext/date/tests/date_constants.phpt Tue May 30 14:46:46 2006 @@ -24,8 +24,8 @@ --EXPECT-- string(25) "2006-07-01T14:27:30+02:00" string(25) "2006-05-30T14:32:13+02:00" -string(31) "Sat, 01 Jul 2006 14:27:30 +0200" -string(31) "Tue, 30 May 2006 14:32:13 +0200" +string(33) "Saturday, 01-Jul-06 14:27:30 CEST" +string(32) "Tuesday, 30-May-06 14:32:13 CEST" string(24) "2006-07-01T14:27:30+0200" string(24) "2006-05-30T14:32:13+0200" string(29) "Sat, 01 Jul 06 14:27:30 +0200" @@ -38,7 +38,7 @@ string(31) "Tue, 30 May 2006 14:32:13 +0200" string(31) "Sat, 01 Jul 2006 14:27:30 +0200" string(31) "Tue, 30 May 2006 14:32:13 +0200" -string(31) "Sat, 01 Jul 2006 14:27:30 +0200" -string(31) "Tue, 30 May 2006 14:32:13 +0200" +string(29) "Sat, 01 Jul 06 14:27:30 +0200" +string(29) "Tue, 30 May 06 14:32:13 +0200" string(25) "2006-07-01T14:27:30+02:00" string(25) "2006-05-30T14:32:13+02:00"
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php