CVS update: php4/ext/standard
| From: | rasmus | Date: | Tue, 15 Jun 1999 12:31:31 +0000 |
| Subject: | CVS update: php4/ext/standard | ||
| Groups: | php.version4 | ||
| Request: | Send a blank email to php-version4+get-1562@lists.php.net to get a copy of this message | ||
Date: Tuesday June 15, 1999 @ 8:31
Author: rasmus
Update of /repository/php4/ext/standard
In directory php:/tmp/cvs-serv31505/ext/standard
Modified Files:
datetime.c
Log Message:
gmmktime() fix
Index: php4/ext/standard/datetime.c
diff -u php4/ext/standard/datetime.c:1.7 php4/ext/standard/datetime.c:1.8
--- php4/ext/standard/datetime.c:1.7 Sun May 16 07:19:25 1999
+++ php4/ext/standard/datetime.c Tue Jun 15 08:31:29 1999
@@ -30,7 +30,7 @@
*/
-/* $Id: datetime.c,v 1.7 1999/05/16 11:19:25 sas Exp $ */
+/* $Id: datetime.c,v 1.8 1999/06/15 12:31:29 rasmus Exp $ */
#include "php.h"
@@ -96,13 +96,6 @@
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 @@
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;
}