Is there a way I can piggy back sessions to know if the user is online?
I.e: use logs on, I set a $_SESSION variable, user times out- cookie Garbage collector update
It sounds like your "is the person online" comparison logic isn't taking into account the timezones. If you are dealing with timezones in this manner, I strongly recommend that you store all your times in GMT, and convert them to local time for your users right before you display them. This will make any comparison operations very simple.
There's a nice SO thread about timezones here.