L'ora si aggiorna da sola, la data non scatta a mezzanotte, bisogna aggiornare la pagina

Codice PHP:

//Data italiana
function data() {
var 
now = new Date();
var 
giornosett now.getDay();
var 
giorno now.getDate();
var 
mese now.getMonth(); 
var 
anno now.getFullYear(); 
var 
nameMth = new Array('gen','feb','mar','apr','mag','giu','lug','ago''set','ott','nov’,‘dic');
document.write(' ' giorno ' ' nameMth[mese] + ' ' anno ',');
}

//Ora formato 24 ore
function startTime() {
var 
today = new Date();
var 
ora today.getHours();
var 
minuti today.getMinutes();
var 
secondi today.getSeconds();
if (
ora<=9) { ora='0'+ora; };
if (
minuti<=9) { minuti='0'+minuti; };
if (
secondi<=9) { secondi='0'+secondi; };
setTimeout(function() { startTime() },1000);
document.getElementById('txt').innerHTML ora ':' minuti ':' secondi;
}


<
body onload="data()">
<
body onload="startTime()">

<
script type="text/javascript">data();</script><span id="txt"></span>