我正在尝试将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日期后,即使时区相同,也会在那一小时后加上。
处理此问题的最佳方法是什么?