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