date() non prevede traduzioni nativamente, se vuoi per forza usare date() devi usare dei workaround, ti fai un array con i nomi in italiano e prendi quello giusto in base a ciò che restituisce date().
In alternativa puoi fare una cosa così
Codice PHP:
// imposti la lingua voluta in output e contemporaneamente ti salvi la lingua corrente impostata in caso fosse diversa
$old_locale = setlocale(LC_TIME, 'it_IT');
// stampi la data nella lingua impostata sopra
echo utf8_encode( strftime("%a %d-%m-%Y", time()) );
// reimposti la lingua che era in uso prima di questo codice
setlocale(LC_TIME, $old_locale);