function kind_get_timezones()
{
    $o = array();
    $t_zones = timezone_identifiers_list();
    foreach ($t_zones as $a) {
        $t = '';
        try {
            //this throws exception for 'US/Pacific-New'
            $zone = new DateTimeZone($a);
            $seconds = $zone->getOffset(new DateTime("now", $zone));
            $o[] = tz_seconds_to_offset($seconds);
        } catch (Exception $e) {
            //die("Exception : " . $e->getMessage() . '<br />');
            //what to do in catch ? , nothing just relax
        }
    }
    $o = array_unique($o);
    asort($o);
    return $o;
}
<?php

/**
 * Provides the 'Time' view for the corresponding tab in the Post Meta Box.
 *
 *
 * @package    Indieweb_Post_Kinds
 */
$tzlist = kind_get_timezones();
$tz_seconds = get_option('gmt_offset') * 3600;
$offset = tz_seconds_to_offset($tz_seconds);
$start_offset = ifset($time['start_offset']) ?: $offset;
$end_offset = ifset($time['end_offset']) ?: $offset;
?>
 
<div class="inside hidden">
    <p>Time Properties</p>
    <div id="kindmetatab-time">
      <label for="published"><?php 
_e('Published/Start', 'Post kind');
?>
</label><br/> 
      <input type="date" name="time[start_date]" id="start_date" value="<?php 
echo ifset($time['start_date']);
?>
"/>
      <input type="time" name="time[start_time]" id="start_time" step="1" value="<?php 
echo ifset($time['start_time']);
?>
"/>
   <select name="time[start_offset]" id="start_offset">