php - 为什么 PHP DateTime->add(DateInterval) 在夏令时转换失败?
问题描述
我正在使用 php 8。我DateTimeImmutable
在时区“欧洲/苏黎世”中有一个对象
$start = new DateTimeImmutable('2021-03-28 01:00', new DateTimeZone("Europe/Zurich"));
// Europe/Zurich is in UTC+1 during winter, UTC+2 in summer
然后我加1,分别。2小时使用DateInterval
$oneHour = $start->add(new DateInterval('PT1H'));
$twoHour = $start->add(new DateInterval('PT2H'));
echo $oneHour->format('c');
echo $twoHour->format('c');
我的期望:
"2021-03-28T03:00:00+02:00"
"2021-03-28T04:00:00+02:00"
我得到什么:
"2021-03-28T03:00:00+02:00"
"2021-03-28T03:00:00+02:00" <-- same result!
这是一个php错误吗?为什么会失败?这是预期的行为吗?
解决方案
推荐阅读
- javascript - javascript格式数字
- firebase - Firebase 身份验证:链接匿名帐户
- java - 内循环不打印单行矩阵Java intellij的列
- asp.net-core - 如何使用 IdentityServer4 中的 ResourceOwnerPassword GrantType 使旧令牌无效
- autofac - 解析 IEnumerable 时的 Autofac 独立范围
- javascript - 滚动到
- 单击溢出(javascript)
- python - Python,文件处理
- python - Python mock.patch 自动指定具有属性的类
- amazon-web-services - aws 集群中的核心
- php - 将实时 Magento 2.1 站点迁移到本地主机时出错:SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝