derick Sat Oct 15 14:14:40 2005 EDT
Modified files:
/php-src/ext/date php_date.c
/php-src/ext/date/lib fallbackmap.h
Log:
- MF51: Fixed timezone guessing on Windows.
http://cvs.php.net/diff.php/php-src/ext/date/php_date.c?r1=1.62&r2=1.63&ty=u
Index: php-src/ext/date/php_date.c
diff -u php-src/ext/date/php_date.c:1.62 php-src/ext/date/php_date.c:1.63
--- php-src/ext/date/php_date.c:1.62 Wed Oct 12 15:49:35 2005
+++ php-src/ext/date/php_date.c Sat Oct 15 14:14:40 2005
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.62 2005/10/12 19:49:35 derick Exp $ */
+/* $Id: php_date.c,v 1.63 2005/10/15 18:14:40 derick Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -339,26 +339,29 @@
switch (GetTimeZoneInformation(&tzi))
{
+ /* no DST or not in effect */
case TIME_ZONE_ID_UNKNOWN:
- /* we have no clue what it is, return UTC */
- php_error_docref(NULL TSRMLS_CC, E_STRICT, "It
is not safe to rely on the systems timezone settings, please use the
date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We use 'UTC' instead.");
- tzid = "UTC";
- break;
-
case TIME_ZONE_ID_STANDARD:
+php_win_std_time:
tzid = timelib_timezone_id_from_abbr("",
(tzi.Bias + tzi.StandardBias) * -60, 0);
if (! tzid) {
tzid = "UTC";
}
- php_error_docref(NULL TSRMLS_CC, E_STRICT, "It
is not safe to rely on the systems timezone settings, please use the
date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We use '%s' for '%.1f/no DST' instead.",
tzid, (float) ((tzi.Bias + tzi.StandardBias) / -60));
+ php_error_docref(NULL TSRMLS_CC, E_STRICT, "It
is not safe to rely on the systems timezone settings, please use the
date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We use '%s' for '%.1f/no DST' instead.",
tzid, ((tzi.Bias + tzi.StandardBias) / -60.0));
break;
+ /* DST in effect */
case TIME_ZONE_ID_DAYLIGHT:
+ /* If user has disabled DST in the control
panel, Windows returns 0 here */
+ if (tzi.DaylightBias == 0) {
+ goto php_win_std_time;
+ }
+
tzid = timelib_timezone_id_from_abbr("",
(tzi.Bias + tzi.DaylightBias) * -60, 1);
if (! tzid) {
tzid = "UTC";
}
- php_error_docref(NULL TSRMLS_CC, E_STRICT, "It
is not safe to rely on the systems timezone settings, please use the
date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We use '%s' for '%.1f/DST' instead.",
tzid, (float) ((tzi.Bias + tzi.DaylightBias) / -60));
+ php_error_docref(NULL TSRMLS_CC, E_STRICT, "It
is not safe to rely on the systems timezone settings, please use the
date.timezone setting, the TZ environment variable or the
date_default_timezone_set() function. We use '%s' for '%.1f/DST' instead.",
tzid, ((tzi.Bias + tzi.DaylightBias) / -60.0));
break;
}
return tzid;
http://cvs.php.net/diff.php/php-src/ext/date/lib/fallbackmap.h?r1=1.2&r2=1.3&ty=u
Index: php-src/ext/date/lib/fallbackmap.h
diff -u php-src/ext/date/lib/fallbackmap.h:1.2
php-src/ext/date/lib/fallbackmap.h:1.3
--- php-src/ext/date/lib/fallbackmap.h:1.2 Sat Oct 1 11:07:20 2005
+++ php-src/ext/date/lib/fallbackmap.h Sat Oct 15 14:14:40 2005
@@ -1,3 +1,4 @@
+ { "sst", 0, -11, "Pacific/Apia" },
{ "hst", 0, -10, "Pacific/Honolulu" },
{ "akst", 0, -9, "America/Anchorage" },
{ "akdt", 1, -8, "America/Anchorage" },
@@ -10,7 +11,11 @@
{ "est", 0, -5, "America/New_York" },
{ "edt", 1, -4, "America/New_York" },
{ "ast", 0, -4, "America/Halifax" },
- { "adt", 0, -3, "America/Halifax" },
+ { "adt", 1, -3, "America/Halifax" },
+ { "brt", 0, -3, "America/Sao_Paulo" },
+ { "brst", 1, -2, "America/Sao_Paulo" },
+ { "azost", 0, -1, "Atlantic/Azores" },
+ { "azodt", 1, 0, "Atlantic/Azores" },
{ "gmt", 0, 0, "Europe/London" },
{ "bst", 1, 1, "Europe/London" },
{ "cet", 0, 1, "Europe/Paris" },
@@ -23,6 +28,7 @@
{ "pkt", 0, 5, "Asia/Karachi" },
{ "ist", 0, 5.5, "Asia/Calcutta" },
{ "npt", 0, 5.75, "Asia/Katmandu" },
+ { "yekt", 1, 6, "Asia/Yekaterinburg" },
{ "novst", 1, 7, "Asia/Novosibirsk" },
{ "krat", 0, 7, "Asia/Krasnoyarsk" },
{ "krast", 1, 8, "Asia/Krasnoyarsk" },
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php