20
The problem is that code is not a timepiece. Simple program code cannot tell what time IT IS. It therefore needs the input of a time signal.
You basically have 3 choices for a time signal;
1. The time of the computer running as a server.
2. The time of the users computer
3. An external time signal.
Since your users can come from all over the place only options 1 and 3 are workable. The most common is option 1.
Even PHPBB will take the server time and use code that takes your Offset setting to correct to GMT. IF you don't supply the correct setting then you don't get the right time.
Xoops is no different.
So the steps are;
1. Read your server time with the php date() function running in a script on the server.
2. Calculate for yourself what this is offset from GMT.
3. Add that offset to the Server Time setting in Xoops.
4. IF most of your users are local to you, then set default to your local GMT offset. IF not set it to the expect timezone of the majority of users. Anonymous users will always see time based on this default.
(NOTE: My guess is that you have set Server and Default to the same offset. Therefore until you log in, your displayed times will be wrong.)
5. Set up your profile time offset for your local time zone.