Ya lo he terminado para que funcione perfectamente siempre. Lo dejo aqui por si alguien le interesa.
Código PHP:
function getTimestamp($forMySQL) {
date_default_timezone_set('UTC');
$year = date("Y");
$ahora =strtotime(date("d-m-Y"));
$inicio_invierno = strtotime("last Sunday April $year");
$fin_invierno = strtotime("last Sunday November $year");
if ($ahora > $inicio_invierno && $ahora <= $fin_invierno) $num = 2;
else $num = 1;
if ($forMySQL) return "DATE_ADD( UTC_TIMESTAMP( ) , INTERVAL $num HOUR )";
else return strtotime("+$num hours now");
}
Es para españa y otros paises proximos, para latinoamerica hay que ajustar la variable $num para cada zona...
Usos:
Código PHP:
//Mostrar la hora
$formato = "d/m/Y H:i";
echo date($formato, getTimesptamp(false));
//Guardar hora en base de datos
$time = getTimestamp(true);
$query = "INSERT INTO users(nick,password,date) VALUES"
."('$nick', '$pass','$agent',$time)";
Saludos.