Pues mirando en los manuales on-line dice lo siguiente:
date() -> Devuelve una cadena formateada de acuerdo con la cadena de formato dada, utilizando el valor de timestamp dado o la hora local actual si no hay parámetro.
gmdate() -> Idéntica a la función date() excepto en que la hora devuelta es la de Greenwich (GMT).
Ejemplo: Código PHP:
echo date( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
echo gmdate( "M d Y H:i:s",mktime(0,0,0,1,1,1998) );
Si esto se utiliza en Finlandia (GMT +0200), la primera línea del ejemplo devuelve "Jan 01 1998 00:00:00", mientras la segunda imprime "Dec 31 1997 22:00:00".
Now() --> este vale solo en un query (osea, base de datos)
Espero haber aclarado tu duda... aunque esto lo dicen los manuales
Saludos