Skip to content

Commit e06c47c

Browse files
committed
Provide a specific error message if date.timezone value is invalid.
1 parent 328a3d9 commit e06c47c

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

ext/date/php_date.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -862,9 +862,14 @@ static char* guess_timezone(const timelib_tzdb *tzdb TSRMLS_DC)
862862
}
863863
} else if (*DATEG(default_timezone) && timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) {
864864
return DATEG(default_timezone);
865+
} else if (*DATEG(default_timezone)) {
866+
/* Invalid date.timezone value */
867+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "date.timezone value '%s' is invalid. We selected the timezone 'UTC' for now.", DATEG(default_timezone));
868+
} else {
869+
/* No date.timezone value */
870+
php_error_docref(NULL TSRMLS_CC, E_WARNING, DATE_TZ_ERRMSG "We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.");
865871
}
866872
/* Fallback to UTC */
867-
php_error_docref(NULL TSRMLS_CC, E_WARNING, DATE_TZ_ERRMSG "We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone.");
868873
return "UTC";
869874
}
870875

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
--TEST--
2+
date_default_timezone_get() function [4]
3+
--INI--
4+
date.timezone=Incorrect/Zone
5+
--FILE--
6+
<?php
7+
echo date_default_timezone_get(), "\n";
8+
?>
9+
--EXPECTF--
10+
Warning: date_default_timezone_get(): date.timezone value 'Incorrect/Zone' is invalid. We selected the timezone 'UTC' for now. in %sdate_default_timezone_get-4.php on line %d
11+
UTC

0 commit comments

Comments
 (0)