Commit:    e06c47ca2ab482ab5e6ba47a9249a9b9417cb1b4
Author:    Simon Welsh <si...@simon.geek.nz>         Tue, 11 Sep 2012 21:14:51 
+1200
Parents:   328a3d9f1384d3555833345dbe879e4d99922a35
Branches:  master

Link:       
http://git.php.net/?p=php-src.git;a=commitdiff;h=e06c47ca2ab482ab5e6ba47a9249a9b9417cb1b4

Log:
Provide a specific error message if date.timezone value is invalid.

Changed paths:
  M  ext/date/php_date.c
  A  ext/date/tests/date_default_timezone_get-4.phpt


Diff:
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index 7c4e782..eac6ca5 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -862,9 +862,14 @@ static char* guess_timezone(const timelib_tzdb *tzdb 
TSRMLS_DC)
                }
        } else if (*DATEG(default_timezone) && 
timelib_timezone_id_is_valid(DATEG(default_timezone), tzdb)) {
                return DATEG(default_timezone);
+       } else if (*DATEG(default_timezone)) {
+               /* Invalid date.timezone value */
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "date.timezone 
value '%s' is invalid. We selected the timezone 'UTC' for now.", 
DATEG(default_timezone));
+       } else {
+               /* No date.timezone value */
+               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.");
        }
        /* Fallback to UTC */
-       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.");
        return "UTC";
 }
 
diff --git a/ext/date/tests/date_default_timezone_get-4.phpt 
b/ext/date/tests/date_default_timezone_get-4.phpt
new file mode 100644
index 0000000..e76d4e3
--- /dev/null
+++ b/ext/date/tests/date_default_timezone_get-4.phpt
@@ -0,0 +1,11 @@
+--TEST--
+date_default_timezone_get() function [4]
+--INI--
+date.timezone=Incorrect/Zone
+--FILE--
+<?php
+       echo date_default_timezone_get(), "\n";
+?>
+--EXPECTF--
+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
+UTC


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to