diff options
author | Rasmus Lerdorf <rasmus@php.net> | 1999-06-15 12:31:29 +0000 |
---|---|---|
committer | Rasmus Lerdorf <rasmus@php.net> | 1999-06-15 12:31:29 +0000 |
commit | bdbdaa4369bf21c3e7cccdfddfac4b5308af7518 (patch) | |
tree | e12bc25519ad8580511032417956d2759c560fad | |
parent | 215a88ade1aee74546ccb893dc6bd6e87d237bed (diff) | |
download | php-git-bdbdaa4369bf21c3e7cccdfddfac4b5308af7518.tar.gz |
gmmktime() fix
-rw-r--r-- | ext/standard/datetime.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/ext/standard/datetime.c b/ext/standard/datetime.c index 82ea84bc65..1a0cfeca77 100644 --- a/ext/standard/datetime.c +++ b/ext/standard/datetime.c @@ -96,13 +96,6 @@ void _php3_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm) tzset(); #endif tn = localtime(&t); - if (gm) { -#if HAVE_TM_GMTOFF - gmadjust=(tn->tm_gmtoff)/3600; -#else - gmadjust=timezone/3600; -#endif - } memcpy(&ta,tn,sizeof(struct tm)); ta.tm_isdst = -1; @@ -123,10 +116,22 @@ void _php3_mktime(INTERNAL_FUNCTION_PARAMETERS, int gm) ta.tm_min = arguments[1]->value.lval; /* fall-through */ case 1: - ta.tm_hour = arguments[0]->value.lval - gmadjust; + ta.tm_hour = arguments[0]->value.lval; case 0: break; } + t=mktime(&ta); /* Need to do this because of Daylight savings */ + tn = localtime(&t); + + if (gm) { +#if HAVE_TM_GMTOFF + gmadjust=(tn->tm_gmtoff)/3600; +#else + gmadjust=timezone/3600; +#endif + } + + ta.tm_hour+=gmadjust; return_value->value.lval = mktime(&ta); return_value->type = IS_LONG; } |