I'm not completely sure what you're trying to do, but I made a quick example php page to show what I meant about making an array of timestamps and setting a session variable for your timestamp.
Here's the code here:
PHP Code:
<?php
session_start();
if(sizeof($_POST) > 0 && $_POST['submit']){
$_SESSION['timezone'] = $_POST['timezone'];
}
//I can only be bothered inserting a few timezones...
$timezones = array(
array('stamp'=>"US/Eastern",'name'=>"United States - Eastern"),
array('stamp'=>"US/Central",'name'=>"United States - Central"),
array('stamp'=>"NZ",'name'=>"New Zealand"),
array('stamp'=>"Europe/London",'name'=>"United Kingdom")
);
if(isset($_SESSION['timezone'])){
date_default_timezone_set($timezones[$_SESSION['timezone']]['stamp']);
}
print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>';
print date('l \\t\h\e jS \of F Y')."<br />".date('g\:ia')."<br /><br />";
print"<form action=\"".$_SERVER['REQUEST_URI']."\" method=\"post\">";
print "<select name='timezone'>";
for($i=0;$i<sizeof($timezones);$i++){
print "<option value='{$i}'>{$timezones[$i]['name']}</option>";
}
print "</select>";
print '<input type="submit" name="submit" value="Set timezone" />
</form>
</body>
</html>';
?>
I havn't had time to test it as Absolut is down -.- . But all you need to do is finish and put that $timezone definition in a global include file and then you can call date() like you normally would, and the timezone will be set for that particular user.
[EDIT] -> I have now tested it... Works fine. Look here for the script in action!