slight mod for the replace code:
if (preg_match('/^UTC[ t+-]/', $opts['timezone_string'])) {
# correct for manual UTC offets
$userOffset = preg_replace('/UTC+?/', '', $opts['timezone_string']) * 3600;
} else {
# get timezone offset for user
$date_time_zone_selected = new DateTimeZone(sp_esc_str($opts['timezone_string']));
$userOffset = timezone_offset_get($date_time_zone_selected, date_create());
}
$wptz = get_option('timezone_string');