- Fixed timezone guessing on Windows. (Derick, Nuno)

This commit is contained in:
Derick Rethans 2005-10-15 18:12:29 +00:00
parent b343aa9945
commit 33921efc44
3 changed files with 19 additions and 8 deletions

2
NEWS
View File

@ -1,6 +1,8 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Oct 2005, PHP 5.1 Release Candidate 3
- Updated timezone database to version 2005.14. (Derick)
- Fixed timezone guessing on Windows. (Derick, Nuno)
14 Oct 2005, PHP 5.1 Release Candidate 2
- Changed SQLite extension to be a shared module in Windows distribution.

View File

@ -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" },

View File

@ -337,26 +337,29 @@ static char* guess_timezone(TSRMLS_D)
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;