Php 在没有夏令时的时区下车

Php 在没有夏令时的时区下车,php,datetime,Php,Datetime,如果没有夏令时,如何获取日期时间的偏移量?我可以这样得到偏移量: <?php $winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York')); $summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York')); echo $winter->getOffset() . "\n";

如果没有夏令时,如何获取日期时间的偏移量?我可以这样得到偏移量:

<?php
  $winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
  $summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

  echo $winter->getOffset() . "\n";
  echo $summer->getOffset() . "\n";
?>
<?php
  $timezone = new DateTimeZone("Europe/London");
  $transitions = $timezone->getTransitions();
  print_r(array_slice($transitions, 0, 3));
?>

但如果我理解正确,它会用DST输出偏移量。我知道我们可以检查DST是否有效,如下所示:

<?php
  $winter = new DateTime('2010-12-21', new DateTimeZone('America/New_York'));
  $summer = new DateTime('2008-06-21', new DateTimeZone('America/New_York'));

  echo $winter->getOffset() . "\n";
  echo $summer->getOffset() . "\n";
?>
<?php
  $timezone = new DateTimeZone("Europe/London");
  $transitions = $timezone->getTransitions();
  print_r(array_slice($transitions, 0, 3));
?>


我还看到了
IntlTimeZone::getOffset
,但是我如何使用它呢?

你能澄清一下你要用这些信息做什么吗?偏移量是当时该位置的偏移量。“没有DST”在一般情况下没有多大意义,但如果你澄清你需要它的原因,也许会有意义。我需要计算特定位置的日落和日出。我使用的是date\u sunset()和date\u sunse()。我可以找出该位置时区的偏移量,并将其用作date_sunset()和date_sunrise()的参数,但它适用于航班,它们经过多个时区,但航班持续时间保持不变,我正在增加飞行时间+1,并找出那个位置和那个时间的日出和日落。如果你知道你想要的时区,我宁愿使用
SUNFUNCS\u RET\u TIMESTAMP
返回模式并将时间戳格式化为所需的时区…!?但当我将其格式化为所需的时区时,它将包括DST,不是吗?“美国/纽约”是一个时区,它根据一年中的时间“捆绑”偏移并在它们之间切换。具体来说,要么是美国东部标准时间,要么是美国东部标准时间。它们有特定的固定偏移量。那么…得到这两个的其中一个的偏移量?哪一个是固定的数字?