Я пытаюсь преобразовать дату RSS (ISO 8601) в дату iCalendar. Я подумал, что смогу превратить начальную дату в метку времени Unix, а затем отформатировать ее с strftime
.
. Я понимаю, что strftime
меняет дату на местное время.
Яполучение начального значения $date
из RSS-канала Wordpress, настроенного для часового пояса Европы / Цюриха. Дата, полученная из RSS, является правильной (начиная с 15 ноября в 8:00).
Когда я конвертирую ее, она получает дополнительный час.
Мне пришлось установить 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:00, но при переносе на дату iCalendar, даже если часовой пояс тот же, добавляется один час.
Что является лучшим способом обработкиэто?