ID: 29654 Updated by: [EMAIL PROTECTED] Reported By: kulakov74 at yandex dot ru -Status: Open +Status: Bogus Bug Type: Date/time related Operating System: Linux PHP Version: 4.3.7 New Comment:
But you DO need to set it back immediately as the function modifies the environment which is also used by requests to the same apache child. No bug here. Previous Comments: ------------------------------------------------------------------------ [2004-08-13 16:51:49] kulakov74 at yandex dot ru Description: ------------ I tried putenv('TZ=...') to get local time for any timezone. After that, if I don't call putenv('TZ=...') using date/time functions (date()) in consequent requests randomly return either local time or the time for the zone last set with TZ. In Apache access_log's time offsets also vary. It seems that Apache proccesses remember the time for the timezone set with TZ and use it for consequent requests. Unfortunately, there's no function for deleting an environment variable. Even though with consequent requests TZ seems to be undefined, date functions work as if it were set for the last value. For a reason, calling mktime(0,0,0,1,1,1970) clears Apache's processes internal time, but that happens only on subsequent requests, not within the same one. Of course, one can use putenv('TZ=...') for setting local timezone back after working with a different timezone, but anyway I guess that shouldn't be the way it is. We use Apache 2. Reproduce code: --------------- //first request: echo(date('H:i:s').'<BR>'); //localtime putenv('TZ=Europe/Moscow'); echo(date('H:i:s').'<BR>'); //Moscow time - works okay //at consequent requests: echo(date('H:i:s').'<BR>'); //may produce local or Moscow time, depending on which Apache process handles the request Expected result: ---------------- see above Actual result: -------------- see above ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=29654&edit=1