Logo abaixo estão duas formas de se utilizar a data por extenso em português:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
setlocale (LC_ALL, 'pt_BR','ptb');
/*
'pt_BR' Define o local para  para o Português(Brasil) em servidores linux
'ptb' Define o local para  para o Português(Brasil) em servidores windows
*/
 
echo utf8_encode(strftime('%A, %d de %B de %Y'));
// Ex: quarta-feira, 24 de dezembro de 2008
// a funcção utf8_encode() é usada para corrigir probleas
// com alguns caracteres utf8 (Março, terça-feira, sábado...)
 
// VERSAO MYSQL PARA TRADUZIR A DATA NA LINGUA LOCAL
// OBS: Só existe a partir da versão 5.0.25
 
mysql_query('SET lc_time_names = "pt_BR"');
 
$exemplo = mysql_fetch_array('SELECT DATE_FORMAT(CURDATE(), "%W, %d de %M de %Y") AS data_formatada');
echo $exemplo['data_formatada'];

Dessa forma é bem melhor do que guardar um array com os meses ou o nome do dia da seman.

Para mais formatos em PHP acesse:

http://br2.php.net/strftime

Para os formatos em MySQL:

http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html