I've tried this script that I found at www.php.net and it doesn't work... The TZ/PHP_TZ environment variables change, but the time doesn't...
<?
putenv("PHP_TZ=Canada/Eastern");
$timestamp=mktime(date("H"),date("i"),date("s"),date("m"),date("d"),date("Y"));
// Show the time
echo "Date ".date("d/m/Y H:i:s",$timestamp)." in ".getenv ("PHP_TZ")."\n";
echo "Date ".date("d/m/Y H:i:s")." in ".getenv ("PHP_TZ")."\n";
// Now Change the Timezone
putenv("PHP_TZ=Australia/Adelaide");
echo "Date ".date("d/m/Y H:i:s",$timestamp)." in ".getenv ("PHP_TZ")."\n";
echo "Date ".date("d/m/Y H:i:s")." in ".getenv ("PHP_TZ")."\n";
putenv("TZ=Australia/Adelaide");
echo "Date ".date("d/m/Y H:i:s",$timestamp)." in ".getenv ("TZ")."\n";
echo "Date ".date("d/m/Y H:i:s")." in ".getenv ("TZ")."\n";
?>