Pare de sufrir!!
Es muy sencillo amigo.
Si quieres que la funcion date te reste 4 horas a la del servidor, pues bien, un minuto tiene 60 segundos y una hora tiene 60 minutos, que en 4 horas tienes un total de 14400 segundos.
Entonces a la función date le solicitas que te muestre lo que quiereas en el segundo actual restándole 4 horas.
O sea, time()-14400.
Si quieres sumarle 4 horas, a los segundos actuales les sumas 14400 seundos: time()+14400.
Como conclusión, este concepto combinado con la funciópn date quedaría de esta manera:
Código PHP:
$hoy = date("d-m-Y H:i:s",time()+14400);
echo $hoy;
Eso te mostrará el día, mes, año y hora actual pero sumándole 4 horas.
Lo mismo aplicas a tu script para sumar 4 horas:
$dia = date("j",time()+14400); //Dia del mes en numero
$mes = date("n",time()+14400); //Mes actual en numero
$diasemana = date("w",time()+14400); //Dia de semana en numero
Bueno amigo espero haber sido de utilidad!!
Suerte y me tienes al tanto