bjori Tue May 30 14:45:16 2006 UTC
Modified files:
/php-src/ext/date php_date.c
/php-src/ext/date/tests date_constants.phpt
Log:
Fixed DATE_COOKIE & DATE_RSS
Fixed tests
Add comments
# My first php-src/ commit! :)
http://cvs.php.net/viewcvs.cgi/php-src/ext/date/php_date.c?r1=1.94&r2=1.95&diff_format=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.94 php-src/ext/date/php_date.c:1.95
--- php-src/ext/date/php_date.c:1.94 Tue May 30 13:08:00 2006
+++ php-src/ext/date/php_date.c Tue May 30 14:45:16 2006
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.94 2006/05/30 13:08:00 derick Exp $ */
+/* $Id: php_date.c,v 1.95 2006/05/30 14:45:16 bjori Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -345,8 +345,21 @@
date_register_classes(TSRMLS_C);
+/*
+ * 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);
@@ -354,7 +367,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);
@@ -1413,7 +1430,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);
@@ -1421,7 +1438,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.2&r2=1.3&diff_format=u
Index: php-src/ext/date/tests/date_constants.phpt
diff -u php-src/ext/date/tests/date_constants.phpt:1.2
php-src/ext/date/tests/date_constants.phpt:1.3
--- php-src/ext/date/tests/date_constants.phpt:1.2 Tue May 30 13:15:10 2006
+++ php-src/ext/date/tests/date_constants.phpt Tue May 30 14:45:16 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