summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2017-04-17 08:09:05 +0100
committerJoe Watkins <krakjoe@php.net>2017-04-17 08:09:24 +0100
commitbc3c9a06e03730594bcc2d4d26ff96965e27f040 (patch)
treec98dad078929018ebc336b16fa5ae8cf73e1bb2f
parent0959e6f4225a92206849aaab1cb2d322ac45bbe2 (diff)
parent618d97962a8ac59d981c8307cc704790f46090c8 (diff)
downloadphp-git-bc3c9a06e03730594bcc2d4d26ff96965e27f040.tar.gz
Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0: Fixed bug #74080 Add datetime constant for RFC7231
-rw-r--r--NEWS1
-rw-r--r--ext/date/php_date.c7
-rw-r--r--ext/date/tests/DateTime_verify.phpt4
-rw-r--r--ext/date/tests/bug74080.phpt11
4 files changed, 22 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 2b6db31f3d..05c8246e96 100644
--- a/NEWS
+++ b/NEWS
@@ -17,6 +17,7 @@ PHP NEWS
- Date:
. Fixed bug #74404 (Wrong reflection on DateTimeZone::getTransitions).
(krakjoe)
+ . Fixed bug #74080 (add constant for RFC7231 format datetime). (duncan3dc)
- DOM:
. Fixed bug #74416 (Wrong reflection on DOMNode::cloneNode).
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 9e03bc1101..c4e5fcb50b 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -776,6 +776,11 @@ PHP_RSHUTDOWN_FUNCTION(date)
#define DATE_FORMAT_RFC1123 "D, d M Y H:i:s O"
/*
+ * RFC7231, Section 7.1.1: http://tools.ietf.org/html/rfc7231
+ */
+#define DATE_FORMAT_RFC7231 "D, d M Y H:i:s \\G\\M\\T"
+
+/*
* RFC2822, Section 3.3: http://www.ietf.org/rfc/rfc2822.txt
* FWS = ([*WSP CRLF] 1*WSP) / ; Folding white space
* CFWS = *([FWS] comment) (([FWS] comment) / FWS)
@@ -868,6 +873,7 @@ PHP_MINIT_FUNCTION(date)
REGISTER_STRING_CONSTANT("DATE_RFC850", DATE_FORMAT_RFC850, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RFC1036", DATE_FORMAT_RFC1036, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT);
+ REGISTER_STRING_CONSTANT("DATE_RFC7231", DATE_FORMAT_RFC7231, 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_RFC3339_EXTENDED", DATE_FORMAT_RFC3339_EXTENDED, CONST_CS | CONST_PERSISTENT);
@@ -2062,6 +2068,7 @@ static void date_register_classes(void) /* {{{ */
REGISTER_DATE_CLASS_CONST_STRING("RFC850", DATE_FORMAT_RFC850);
REGISTER_DATE_CLASS_CONST_STRING("RFC1036", DATE_FORMAT_RFC1036);
REGISTER_DATE_CLASS_CONST_STRING("RFC1123", DATE_FORMAT_RFC1123);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC7231", DATE_FORMAT_RFC7231);
REGISTER_DATE_CLASS_CONST_STRING("RFC2822", DATE_FORMAT_RFC2822);
REGISTER_DATE_CLASS_CONST_STRING("RFC3339", DATE_FORMAT_RFC3339);
REGISTER_DATE_CLASS_CONST_STRING("RFC3339_EXTENDED", DATE_FORMAT_RFC3339_EXTENDED);
diff --git a/ext/date/tests/DateTime_verify.phpt b/ext/date/tests/DateTime_verify.phpt
index 33768969dc..bb3ed9909a 100644
--- a/ext/date/tests/DateTime_verify.phpt
+++ b/ext/date/tests/DateTime_verify.phpt
@@ -156,7 +156,7 @@ array(18) {
}
}
..and get names of all its class constants
-array(12) {
+array(13) {
["ATOM"]=>
string(13) "Y-m-d\TH:i:sP"
["COOKIE"]=>
@@ -171,6 +171,8 @@ array(12) {
string(16) "D, d M y H:i:s O"
["RFC1123"]=>
string(16) "D, d M Y H:i:s O"
+ ["RFC7231"]=>
+ string(21) "D, d M Y H:i:s \G\M\T"
["RFC2822"]=>
string(16) "D, d M Y H:i:s O"
["RFC3339"]=>
diff --git a/ext/date/tests/bug74080.phpt b/ext/date/tests/bug74080.phpt
new file mode 100644
index 0000000000..3c881edeec
--- /dev/null
+++ b/ext/date/tests/bug74080.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #74080 Provide an RFC7231 date time format
+--FILE--
+<?php
+
+$date = mktime(17, 52, 13, 4, 30, 2016);
+var_dump(date(\DateTime::RFC7231, $date));
+
+?>
+--EXPECTF--
+string(29) "Sat, 30 Apr 2016 17:52:13 GMT"