Para solventar el "problemilla" habria que generar la fecha/hora con la diferencia horaria para poder usarlo en los date() (en su segundo parametro q en el caso del ejemplo si se omite se toma el time() actual del servidor...
Ya puestos si usamos las funcinoes de hora en formato GMT nos envitamos hacer pruebas de a ver donde está el servidor para ver su diferencia horaria .. Tomando como referenica la hora GMT se puede ajustar la diferencia horaria (sea +horas o -horas con respecto al 0 q sería la hora GMT)
Usé mktime() (bueno si version GMT gmmktime()) .. Tambien se podria usar time() y hacer el cálculo de los segundos que hay en la diferencia horaria .. para sumarselo o restarselo segun corresponda ...
Código PHP:
<?php
function fecha_ahora_gmt ($dif_gtm=0){
$meses=array(1=>"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
$dias=array(1=>"Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo");
$fecha_gmt=gmmktime(gmdate("H")+$dif_gtm,gmdate("i"),gmdate("s"),gmdate("n"),gmdate("j"),gmdate("Y"));
$fecha_ahora_diaNum = gmdate ("j",$fecha_gmt);
$fecha_ahora_diaNom = gmdate ("w");
$fecha_ahora_mes = gmdate ("n",$fecha_gmt);
$fecha_ahora_year = gmdate ("Y",$fecha_gmt);
$fecha_ahora_hora = gmdate ("H:i:s a",$fecha_gmt);
$fecha_ahora = $dias[$fecha_ahora_diaNom].", ".$fecha_ahora_diaNum." de ".$meses[$fecha_ahora_mes]." de ".$fecha_ahora_year.", a las ".$fecha_ahora_hora;
return $fecha_ahora;
}
$dif_gtm=0; // diferencia horaria con respecto a la hora GTM
$hoy=fecha_ahora_gmt($dif_gtm);
echo "Hoy es: ".$hoy;
?>
De esta forma .. tomando las horas en formato GMT se puede hacer facilmente algo como lo que hace este foro sobre personalizar las fechas que muestres ..
Un saludo,