Enigma do horário de verão do PHP

Tenho uma pergunta geral sobre como lidar com o horário de verão. Eu acho que não é realmente específico do PHP, mas estou escrevendo em PHP, então acho que não faria mal incluí-lo.

Eu tenho um aplicativo de calendário criado usando jquery fullcalendar. O usuário visualiza eventos no fuso horário local e meu servidor os armazena como horários UTC no mysql. (Outras perguntas sobre o stackoverflow sugerem que esta é a melhor maneira de lidar com fusos horários.) Portanto, há uma conversão sempre que o usuário salva ou visualiza eventos no calendário. Isso está funcionando bem, mas estou confuso sobre a melhor forma de lidar com o horário de verão.

Por exemplo, digamos que um usuário no fuso horário EST (horário padrão do leste) crie um evento quando NÃO for o horário de verão para as 15h e repita todos os dias. Meu código PHP usa a classe DateTime (e DateTimeZone) padrão para converter entre UTC e EST por UTC-5: 00. Quando o horário de verão está ativo, o relógio avança uma hora e o PHP é convertido entre UTC e EST por UTC-4: 00. Do ponto de vista do usuário, o evento passa das 15:00 para as 16:00 originais. Não é isso que meus usuários e eu queremos. Um evento às 15h deve permanecer às 15h, independentemente do horário de verão. Qual é a melhor maneira de lidar com isso? Existe uma maneira no PHP de ignorar o horário de verão?

Meu código:

$getDate = new DateTime($storedDate, new DateTimeZone('UTC'));
$getDate->setTimezone(new DateTimeZone('America/New_York'));
$getDateString = $getDate->format('Y-m-d H:i:s');

MAIS INFORMAÇÃO: (copiada dos meus comentários abaixo)

-Só a primeira ocorrência de um evento repetido é armazenada. Todas as outras ocorrências são criadas dinamicamente de acordo com o calendário que o usuário solicita (visualizações de mês, semana ou dia). Com o modo como eu o codifique, ele cria apenas as ocorrências que serão visíveis na exibição.

-O problema é que eu também preciso mantê-lo constante por outros fusos horários. Para continuar o exemplo original, 15:00 devem permanecer 15:00 em EST (independentemente do horário de verão), mas se o evento for exibido no horário central, o evento também deverá permanecer 14:00 (independentemente do horário de verão).

Essencialmente, preciso de alguma forma ignorar o horário de verão.

questionAnswers(2)

yourAnswerToTheQuestion