Originariamente inviato da TEODORO
secondo me questo codice e' molto più leggero del tuo, se ti piò essere di aiuto, A presto.

// funzione per ottenere la data in italiano
setlocale(LC_TIME,'ITA');
$data = strftime("%A %d %B %Y");
il problema puo' essere nella portabilita' del codice per setlocale(). Dal manuale:

La funzione restituisce le nuove impostazioni locali, oppure FALSE se la funzionalità di localizzazione non è implementata sul sistema, se l'impostazione richiesta non esiste, oppure se il nome della categoria non è valida. Un nome di categoria non valido genera anche un warning. I nomi delle categoria possono essere trovati nella RFC 1766 e ISO 639. Differenti sistemi hanno differenti schemi di denominazione delle impostazioni locali.

Nota: Il valore restituito da setlocale() dipende dal sistema su cui gira il PHP. La funzione restituisce fedelmente quello che la funzione di sistema restituisce.
that's all