Resuelto despues de buscar en varios sitios. Resulta que cuando la pagina no tiene la extension .php, el servidor envia el mismo un "Last-Modified" header con la pagina y eso es lo que lee la funcion
document.lastModified.
Al tener lal extension .php no se envia el header. Entonces javascript no sabe cuando fue modificado por ultima vez entonces javascript tiene como defaut el lastModified a "now". Por eso me imprimia el tiempo real xD
He anadido el siguiente codigo al principio del archivo header.php antes de cualquier codigo y funciona
Código PHP:
<?php
$mtime=filemtime($_SERVER["SCRIPT_FILENAME"])-date("Z");
$gmt_mtime = date('D, d M Y H:i:s', $mtime) . ' GMT';
header("Last-Modified: ".$gmt_mtime);
?>