Originariamente inviato da l'evangelista
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
Se provi a passare il timestamp a date() vedrai che ti dara' l'ora corretta. Il timestamp dipende da come e' settata l'ora del PC. Che poi queste ore nel pc sono due ... quella del BIOS che dovrebbe sempre essere GMT e quella del OS che applica lo spiazzamento del time zone e dell'ora legale se esistente. Questo almeno per unix e' abbastanza tassativo.
se prendi un timestamp in ora 2-3 ed uno dopo le tre e lo applichi ad una funzione come date() che tiene conto dell'ora legale a prescindere dall'OS vedrai che l'ora viene correttamente applicata. Lo stesso vale per mysql.
codice:
echo date('Y-m-d H:i:s', mktime(2,30,0,3,25,2007)) . "
"; // ora non esistente
echo date('Y-m-d H:i:s', mktime(3,30,0,3,25,2007)) . "
";
$query = "select from_unixtime('1174786200', '%Y-%m-%d %H:%i:%s')"; // ore 2.30
Se non fai una forzatura scrivendo tu l'ora inesistente non dovresti mai riscontrarla leggendola con uno script su OS.