I have no experience with marijuana and I don't know if I read this post right, but this script should do what I thought was asked for. It displays a random place where the local time is the nearest to the given time. Hope this makes sense, I'm a little bit tired.

It makes use of php's date/time functions.
PHP:
<?php
$time = '1:00pm'; //format hh:mm - either 24h or 12h - pm/am gets converted to 24h-format
$origin_timezone = 'PST';
//dummy to get one of origin_timezone's identifiers
$tz = new DateTimeZone('Europe/London');
$arr = $tz->listAbbreviations(); //we'll use this again later
//get origin_timezone's offset
$tz = new DateTimeZone($arr[strtolower($origin_timezone)][0]['timezone_id']);
$offset = $tz->getOffset(new DateTime());
//get time in seconds
$seconds = explode(':',$time);
$seconds = ($seconds[0]+(strpos($time,'pm') ? 12 : 0))*3600+(int)$seconds[1]*60;
//get origin_timezone's current time
$tz_seconds = new DateTime(null,$tz);
$tz_seconds = $tz_seconds->format('H:i');
$tz_seconds = explode(':',$tz_seconds);
$tz_seconds = $tz_seconds[0]*3600+(int)$tz_seconds[1]*60;
//get difference and mathematically nearest target tz offset
$diff = $tz_seconds-$seconds-3600;
$target_tz = $offset-($diff%3600>1800 ? $diff+$diff%3600 : $diff-$diff%3600);
//get identifier for nearest target tz
//$a contains timezone's abbreviation, $b contains array with timezone_ids
$ids=array();
foreach($arr as $a => $b){
//echo $b[0]['offset'];echo '<br>';
foreach($b as $c)
if ($c['offset'] == $target_tz && strlen($c['timezone_id'])>4){
//store each random timezone_id
$ids[]=$c['timezone_id'];
}
}
//display random timezone_id
echo 'It soon will be (or was not long ago or is currently) '.$time.' in '.$ids[array_rand($ids)];
?>
I'm not sure if it could've been done in an easier way, it's my first draft. At least it should give some ideas.