PRIMA DI TUTTO
sei sicuro che tu abbia azzeccato il fuso? Ci sono diversi fusi in america (è talmente grande), forse il tuo server ha bisogno solo di un ora in più.
Il motivo è che mi sembra strano che PHP consideri l'ora legale diversamente da stato a stato, cioè, ci sono diverse impostazioni locali ma dubito che siano così settate dettagliatamente tra stato e stato.
POI....
Allora l'ora legale dipende dalla settimana e dal giorno del mese in cui entra in vigore e in cui smette di essere in vigore (quindi cambia ogni anno) e dal fuso, praticamente è incalcolabile senza un algoritmo (certamente sviluppabile).
Il problema è che consumerebbe un sacco di risorse inutilmente ogni volta che ti serve una data.
ti consiglio di cercare sul sito www.php.net se esiste la possibilità di reimpostare il meridiano di pertinenza (e quindi anche il momento in cui interverrà l'ora legale) dopodichè lo script da te precedentemente segnalato dovrebbe bastare per regolarlo correttamente (crederà di essere in italia con la data sbagliata, reimpostandola correttamente anche l'ora legale si assesterà).
....ALTRIMENTI
Cambia hoster e vieni in italia, così avrai meno rotture.
![]()