Como armazenar datas repetidas tendo em mente o horário de verão
Estou armazenando eventos no meu banco de dados. Eu tenho 'start' e 'end' date times, 'tickets_start' e 'tickets_end' (para quando a venda de ingressos realmente começa / termina - ao contrário do início / fim do evento real).
Até agora, criei métodos que fazem todas as coisas divertidas, como converter a data / hora para o GMT antes de salvar, e depois voltar para o respectivo fuso horário para exibição.
Estou armazenando o fuso horário em um campo varchar com valores como "America / New_York".
Mas agora eu preciso começar a lidar se o usuário quiser permitir a repetição de eventos. Já fiz isso antes, e não é tão grande assim, mas nunca em vários fusos horários.
No começo, achei que não seria grande coisa, mas depois percebi que - se a data de início era em julho (como exemplo), e se repete todo mês durante um ano, em algum momento, o horário de verão chegará ao fim. de modo que a conversão do GMT mude um tempo diferentemente. Um mês, ao converter 12:00, ele mudaria para -5 e, no seguinte, mudaria para -4 devido a DST.
Meu pensamento atual é que eu vou armazenar um tinyint 'dst' (1) para saber se as datas de início / fim foram inseridas durante o horário de verão e, em seguida, fazer um método para alterar o tempo por uma hora se / quando necessário.
Mas - pensei em perguntar aqui na esperança de que talvez haja um "normal" para isso ou algo fácil que eu não esteja pensando.
(cakephp 2.4.x)