使用纽约时区实现直播活动开始时间正确UTC偏移显示的方案问询
实现方案
你可以通过以下方式实现自动适配纽约夏令时/冬令时的时间格式输出:
- 初始化
DateTime对象时显式指定纽约时区America/New_York,避免受系统默认时区影响导致偏移计算错误 - 调用
getOffset()方法获取对应时间的UTC秒级偏移,除以3600即可得到小时级偏移量,会自动匹配夏令时/冬令时规则 - 拼接原有时间格式和偏移量即可输出符合要求的结果
代码示例
// 初始化纽约时区对象 $nyTimeZone = new DateTimeZone('America/New_York'); // 传入你的活动时间参数即可,自动识别夏令时状态 $eventDate = new DateTime('2001-06-01 20:00', $nyTimeZone); // 计算UTC小时偏移 $offsetHours = $eventDate->getOffset() / 3600; // 输出格式化结果 echo $eventDate->format('F j, Y @ G:i') . ' UTC' . ($offsetHours >= 0 ? '+' : '') . $offsetHours;
输出效果
- 传入6月1日20点的活动时间,输出:
June 1, 2001 @ 20:00 UTC-4 - 传入12月1日20点的活动时间,输出:
December 1, 2001 @ 20:00 UTC-5
内容的提问来源于stack exchange,提问作者Sometip
相关产品推荐
相关产品推荐

