]> granicus.if.org Git - php/commitdiff
Allow the third arg to DateTime(Immutable)::createFromFormat() to be null.
authorSara Golemon <pollita@php.net>
Tue, 30 Dec 2014 21:54:02 +0000 (13:54 -0800)
committerSara Golemon <sgolemon@fb.com>
Tue, 30 Dec 2014 21:58:59 +0000 (13:58 -0800)
Permit the same meaning as not passing the arg at all.

ext/date/php_date.c
ext/date/tests/bug68669.phpt [new file with mode: 0644]

index f26fea3111c6b1bfa516c2a8cfe42e482de00847..5f415fd7f392077d4e768083d4909ce570b3a8e1 100644 (file)
@@ -2628,7 +2628,7 @@ PHP_FUNCTION(date_create_from_format)
        size_t             time_str_len = 0, format_str_len = 0;
        zval            datetime_object;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|O!", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
                RETURN_FALSE;
        }
 
@@ -2651,7 +2651,7 @@ PHP_FUNCTION(date_create_immutable_from_format)
        size_t          time_str_len = 0, format_str_len = 0;
        zval            datetime_object;
 
-       if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|O", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
+       if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss|O!", &format_str, &format_str_len, &time_str, &time_str_len, &timezone_object, date_ce_timezone) == FAILURE) {
                RETURN_FALSE;
        }
 
diff --git a/ext/date/tests/bug68669.phpt b/ext/date/tests/bug68669.phpt
new file mode 100644 (file)
index 0000000..8aac1d2
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+DateTime::createFromFormat() does not allow NULL $timezone
+--FILE--
+<?php
+
+date_default_timezone_set('America/Los_Angeles');
+var_dump(DateTime::createFromFormat('Y/m/d H:i:s', '1995/06/08 12:34:56', null));
+var_dump(DateTimeImmutable::createFromFormat('Y/m/d H:i:s', '1995/06/08 12:34:56', null));
+--EXPECT--
+object(DateTime)#1 (3) {
+  ["date"]=>
+  string(26) "1995-06-08 12:34:56.000000"
+  ["timezone_type"]=>
+  int(3)
+  ["timezone"]=>
+  string(19) "America/Los_Angeles"
+}
+object(DateTimeImmutable)#1 (3) {
+  ["date"]=>
+  string(26) "1995-06-08 12:34:56.000000"
+  ["timezone_type"]=>
+  int(3)
+  ["timezone"]=>
+  string(19) "America/Los_Angeles"
+}