c'e' poco da illuminare... il problema e' il default.... non e' mica detto sia settato.

se prende il default significa la data ora del server. gmdate (gmmktime) prende sempre il Greenwich Mean Time. Quindi data ora certa.

Poresti spostare il tuo sito in CINA perche' costa meno... e la dataora???? E' una segnalazione, mica un obbligo. Ti fa presente che potrebbe esserci un buco usando date(). E' un avviso allo sviluppatore.... come dire .. se vuoi fare software con la massima portabilta' occhio a queste funzioni.

prova a mettere il setlocale()