To detect time zone we can use JavaScript
But updating each time user clics on a link or submits a form is not really a coorect way of handling client time zone.
What if client's PS does have wrong time zone configured, or he lives in one time zone but wants to see dates in another ?
I'd propose to leave time zone setting in profiles and sync it with the one browser reports only on client log in. Plus add a message (under menu) "Your timezone <detected by browser> seems to be diffrent from saved in Your profile <profile timezone>. Do You want to update it [Yes] / [No]"
[Yes] will update timezone and hidethe message
[No] will just hide this message