【发布时间】:2020-03-05 07:50:11
【问题描述】:
我正在尝试将 RSS 日期 (ISO 8601) 转换为 iCalendar 日期。我想我会将初始日期时间转换为 Unix 时间戳,然后将其格式化为 strftime。
我了解strftime 将日期时间更改为当地时间。
我正在从配置为欧洲/苏黎世时区的 Wordpress RSS 提要中获取初始 $date 值。从 RSS 获取的日期是正确的(从 11 月 15 日上午 8 点开始)。
当我转换它时,它会得到一个额外的小时。
我必须设置date_default_timezone_set('UTC') 以保持时间不变。
$tz = "Europe/Zurich";
//date_default_timezone_set('UTC'); //not Europe/Zurich
$date = "2019-11-15T08:00:00+00:00";
$dt = strftime("%Y%m%dT%H%M%S", strtotime($date));
echo $date . "\r\n";
echo strtotime($date) . "\r\n";
echo $dt . "\r\n";
- 2019-11-15T08:00:00+00:00
- 20191115T090000
我对使用时区感到非常困惑...... 苏黎世的初始值是早上 8 点,但是当转换为 iCalendar 日期时,即使时区相同,也会增加一小时。
处理这个问题的最佳方法是什么?
【问题讨论】: