From: Andrei Zmievski Date: Fri, 9 Jun 2000 20:18:36 +0000 (+0000) Subject: @- Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei) X-Git-Tag: php-4.0.1RC~317 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3570258050ecd292b33cfe6a905d9397ac49ff0c;p=php @- Fixed 'Z' flag in date() to adjust for daylight savings time. (Andrei) --- diff --git a/ext/standard/datetime.c b/ext/standard/datetime.c index 7aaedd6972..6c88b42566 100644 --- a/ext/standard/datetime.c +++ b/ext/standard/datetime.c @@ -54,6 +54,7 @@ char *day_short_names[] = #if !defined(HAVE_TM_ZONE) && !defined(_TIMEZONE) && !defined(HAVE_DECLARED_TIMEZONE) extern time_t timezone; +extern int daylight; #endif static int phpday_tab[2][12] = @@ -404,9 +405,9 @@ php_date(INTERNAL_FUNCTION_PARAMETERS, int gm) break; case 'Z': /* timezone offset in seconds */ #if HAVE_TM_GMTOFF - sprintf(tmp_buff, "%ld", ta->tm_gmtoff ); + sprintf(tmp_buff, "%ld", ta->tm_isdst ? ta->tm_gmtoff-3600 : ta->tm_gmtoff); #else - sprintf(tmp_buff, "%ld", timezone); + sprintf(tmp_buff, "%ld", daylight ? timezone-3600 : timezone); #endif strcat(return_value->value.str.val, tmp_buff); break;