Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
符合实际的正确php时区列表_Php - Fatal编程技术网

符合实际的正确php时区列表

符合实际的正确php时区列表,php,Php,以下函数为我提供所有支持时区的列表。但问题是上市是错误的。请勾选“美国/纽约”,它应该是-05,但它显示的是-04。你在这里。请给我一个解决方案,以获得100%正确的时区列表,我将能够捕获该时区值保存在我的数据库中。所以像这个函数一样,我也需要适当的格式,比如列表中的“America/New_York”。仅显示时区列表对我来说不起作用,因为我必须将其保存在数据库中 <?php function tz_list() { $zones_array = array(); $times

以下函数为我提供所有支持时区的列表。但问题是上市是错误的。请勾选“美国/纽约”,它应该是-05,但它显示的是-04。你在这里。请给我一个解决方案,以获得100%正确的时区列表,我将能够捕获该时区值保存在我的数据库中。所以像这个函数一样,我也需要适当的格式,比如列表中的“America/New_York”。仅显示时区列表对我来说不起作用,因为我必须将其保存在数据库中

<?php
  function tz_list() {
  $zones_array = array();
  $timestamp = time();
  foreach(timezone_identifiers_list() as $key => $zone) {
    date_default_timezone_set($zone);
    $zones_array[$key]['zone'] = $zone;
    $zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
  }
  return $zones_array;
}
?>

<form method="post">
    <select class="field" name="time_zone_selector">
        <option selected="selected" value="">Choose TimeZone</option>
        <?php foreach(tz_list() as $t) { ?>
          <option value="<?php print $t['zone'] ?>">
            <?php print $t['zone'].' ('.$t['diff_from_GMT'] . ') ' ?>
          </option>
        <?php } ?>
    </select>
</form>

选择时区

当前纽约时区为-4。目前是美国东部时间,东部时间是10月至3月(我想可能是9月至3月)。你似乎没有考虑夏令时。根据我的电脑时区设置为-05@newyork。如何从php列表中获取该值?@Gekingpoe,您的计算机出错了。除非你能说明你真正想要什么,否则我们帮不了你。(看起来美国/纽约的UTC偏移量不是您真正想要的。)@Gekingpoe,如果
美国/纽约“
,请尝试使用
“EST”
。或者将您的日期与夏令时以外的日期(如1月1日)进行比较。作为最后手段,您可能需要手动调整一小时的差异…如果我是您,我将强烈避免这样做;时区异常复杂。我也很想知道你这样做的用例。这很有可能是一场灾难。