Ciao,
se eseguo questa istruzione:

mktime(01,0,0,03,25,2007);
e da un db mysql ricavo il ts:
select unix_timestamp("2007-03-25 01:00:00")

ricevo lo stesso risultato, 1174780800.

Se eseguo l'istruzione un paio di ore piu tardi, alle 2:58, i risultati sono diversi: 1174787880 per php e 1174784400 per mysql.

Alle 3:01 tutto torna uguale, 1174784460 per tutti e due.

Tutto nasce dal fatto che alle 2 di notte entra l'ora legale. Php continua ad andare avanti con il ts, per poi "tornare indietro" alle 3 di notte, ritornando a 1174784400 (ts delle 2). Mysql invece è come se rimanesse 'congelato' tra le 2 e le tre, dando come ts sempre 1174784400 (alle 2:00 come alle 2:58).

Quando torna l'ora solare invece sia php che mysql seguono lo stesso comportamento: alle 2 del 28 ottobre vanno avanti di 3600 secondi, recuperando cosi quell'ora che avevano indietro.

Pura curiosita:
- qualcuno sa per quale motivo mysql gestisce l'entrata dell'ora legale, a marzo, in maniera diversa da php? discorso inverso: perchè per l'entrata dell'ora solare, a ottobre, hanno due comportamenti uguali? ci sono ragioni 'storiche', c'è un metodo migliore dell'altro ..?
- se con l'ora legale, a marzo, gli orologi si spostano di un'ora avanti.. significa che l'ora solare (che dovrebbe essere il timestamp "puro") è un'ora indietro. Perchè il timestamp di php e mysql è indietro al timestamp dell'ora legale?
:master:

scusate se sono domande banali ma mi ci sto incartando