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

Reply via email to