@@ -339,16 +339,33 @@ PHP_MINIT_FUNCTION(date)
339
339
#ifdef EXPERIMENTAL_DATE_SUPPORT
340
340
date_register_classes (TSRMLS_C );
341
341
#endif
342
+ /*
343
+ * RFC4287, Section 3.3: http://www.ietf.org/rfc/rfc4287.txt
344
+ * A Date construct is an element whose content MUST conform to the
345
+ * "date-time" production in [RFC3339]. In addition, an uppercase "T"
346
+ * character MUST be used to separate date and time, and an uppercase
347
+ * "Z" character MUST be present in the absence of a numeric time zone offset.
348
+ */
342
349
REGISTER_STRING_CONSTANT ("DATE_ATOM" , DATE_FORMAT_RFC3339 , CONST_CS | CONST_PERSISTENT );
343
- REGISTER_STRING_CONSTANT ("DATE_COOKIE" , DATE_FORMAT_RFC1123 , CONST_CS | CONST_PERSISTENT );
350
+ /*
351
+ * Preliminary specification: http://wp.netscape.com/newsref/std/cookie_spec.html
352
+ * "This is based on RFC 822, RFC 850, RFC 1036, and RFC 1123,
353
+ * with the variations that the only legal time zone is GMT
354
+ * and the separators between the elements of the date must be dashes."
355
+ */
356
+ REGISTER_STRING_CONSTANT ("DATE_COOKIE" , DATE_FORMAT_RFC850 , CONST_CS | CONST_PERSISTENT );
344
357
REGISTER_STRING_CONSTANT ("DATE_ISO8601" , DATE_FORMAT_ISO8601 , CONST_CS | CONST_PERSISTENT );
345
358
REGISTER_STRING_CONSTANT ("DATE_RFC822" , DATE_FORMAT_RFC822 , CONST_CS | CONST_PERSISTENT );
346
359
REGISTER_STRING_CONSTANT ("DATE_RFC850" , DATE_FORMAT_RFC850 , CONST_CS | CONST_PERSISTENT );
347
360
REGISTER_STRING_CONSTANT ("DATE_RFC1036" , DATE_FORMAT_RFC1036 , CONST_CS | CONST_PERSISTENT );
348
361
REGISTER_STRING_CONSTANT ("DATE_RFC1123" , DATE_FORMAT_RFC1123 , CONST_CS | CONST_PERSISTENT );
349
362
REGISTER_STRING_CONSTANT ("DATE_RFC2822" , DATE_FORMAT_RFC2822 , CONST_CS | CONST_PERSISTENT );
350
363
REGISTER_STRING_CONSTANT ("DATE_RFC3339" , DATE_FORMAT_RFC3339 , CONST_CS | CONST_PERSISTENT );
351
- REGISTER_STRING_CONSTANT ("DATE_RSS" , DATE_FORMAT_RFC1123 , CONST_CS | CONST_PERSISTENT );
364
+ /*
365
+ * RSS 2.0 Specification: http://blogs.law.harvard.edu/tech/rss
366
+ * "All date-times in RSS conform to the Date and Time Specification of RFC 822"
367
+ */
368
+ REGISTER_STRING_CONSTANT ("DATE_RSS" , DATE_FORMAT_RFC822 , CONST_CS | CONST_PERSISTENT );
352
369
REGISTER_STRING_CONSTANT ("DATE_W3C" , DATE_FORMAT_RFC3339 , CONST_CS | CONST_PERSISTENT );
353
370
354
371
REGISTER_LONG_CONSTANT ("SUNFUNCS_RET_TIMESTAMP" , SUNFUNCS_RET_TIMESTAMP , CONST_CS | CONST_PERSISTENT );
@@ -1285,15 +1302,15 @@ static void date_register_classes(TSRMLS_D)
1285
1302
zend_declare_class_constant_stringl(date_ce_date, const_name, sizeof(const_name)-1, value, sizeof(value)-1 TSRMLS_CC);
1286
1303
1287
1304
REGISTER_DATE_CLASS_CONST_STRING ("ATOM" , DATE_FORMAT_RFC3339 );
1288
- REGISTER_DATE_CLASS_CONST_STRING ("COOKIE" , DATE_FORMAT_RFC1123 );
1305
+ REGISTER_DATE_CLASS_CONST_STRING ("COOKIE" , DATE_FORMAT_RFC850 );
1289
1306
REGISTER_DATE_CLASS_CONST_STRING ("ISO8601" , DATE_FORMAT_ISO8601 );
1290
1307
REGISTER_DATE_CLASS_CONST_STRING ("RFC822" , DATE_FORMAT_RFC822 );
1291
1308
REGISTER_DATE_CLASS_CONST_STRING ("RFC850" , DATE_FORMAT_RFC850 );
1292
1309
REGISTER_DATE_CLASS_CONST_STRING ("RFC1036" , DATE_FORMAT_RFC1036 );
1293
1310
REGISTER_DATE_CLASS_CONST_STRING ("RFC1123" , DATE_FORMAT_RFC1123 );
1294
1311
REGISTER_DATE_CLASS_CONST_STRING ("RFC2822" , DATE_FORMAT_RFC2822 );
1295
1312
REGISTER_DATE_CLASS_CONST_STRING ("RFC3339" , DATE_FORMAT_RFC3339 );
1296
- REGISTER_DATE_CLASS_CONST_STRING ("RSS" , DATE_FORMAT_RFC1123 );
1313
+ REGISTER_DATE_CLASS_CONST_STRING ("RSS" , DATE_FORMAT_RFC822 );
1297
1314
REGISTER_DATE_CLASS_CONST_STRING ("W3C" , DATE_FORMAT_RFC3339 );
1298
1315
1299
1316
0 commit comments