come ottenere il timestamp corretto con il parametro is_dst in PHP?
Domanda
Stiamo creando un timestamp Unix con il metodo mktime dono seguenti attributi:
print_r(mktime(0,0,0,3,1,2009));
print_r(mktime(null,null,null,3,1,2009) / 60 / 60 / 24) . "days");`
questo crea un risultato di
1235862000
14303.958333333 days
questo dovrebbe essere 14304 giorni. Il problema in questo caso è l'ora invernale. È possibile utilizzare il parametro is_dst, e quando usiamo 0 (default -1) questo a volte funziona correttamente dando 14304 giorni di conseguenza.
Ma a volte questo dà seguente problema:
rigidi standard: mktime () [function.mktime]: Il parametro is_dst è deprecato
non ho idea di che cosa significa e che cosa posso fare al riguardo. Qualsiasi idea di qualcuno? perché l'ora invernale sta causando terribili mal di testa ....
Soluzione
gmmktime .
Altri suggerimenti
date("I", time());
Vi darà 1 se le sue legale e 0 se non la sua.
Dalla pagina di manuale di php:
"Ogni chiamata a una funzione data / ora genererà un E_NOTICE se il fuso orario non è valido, e / o un messaggio E_STRICT se si utilizzano le impostazioni di sistema o la variabile d'ambiente TZ Vedi anche date_default_timezone_set () "
che probabilmente significa che si dovrebbe usare date_default_timezone_set () precedenza e saltare il parametro is_dst