From 365f428d463502fd8a2c63640b280753df4bf71f Mon Sep 17 00:00:00 2001 From: Sara Golemon Date: Tue, 30 Dec 2014 13:54:02 -0800 Subject: [PATCH] Allow the third arg to DateTime(Immutable)::createFromFormat() to be null. Permit the same meaning as not passing the arg at all. --- ext/date/php_date.c | 4 ++-- ext/date/tests/bug68669.phpt | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 ext/date/tests/bug68669.phpt diff --git a/ext/date/php_date.c b/ext/date/php_date.c index f26fea3111..5f415fd7f3 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -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 index 0000000000..8aac1d2ceb --- /dev/null +++ b/ext/date/tests/bug68669.phpt @@ -0,0 +1,25 @@ +--TEST-- +DateTime::createFromFormat() does not allow NULL $timezone +--FILE-- + + 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" +} -- 2.40.0