Data em portugues no php

Normalmente eu fazia alguns malabarismos, como um array com os nomes dos meses em português, mas a gente acaba esquecendo que o php tem função nativa pra praticamente tudo.

Pesquisando um pouco, descobri que é só trocar o locale que a mágica acontece =)

setlocale(LC_ALL, 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese');
date_default_timezone_set('America/Sao_Paulo');
echo strftime("%A, %d de %B de %Y", strtotime('NOW'));

Referências:
http://br.php.net/strftime
http://br.php.net/setlocale
http://br.php.net/date_default_timezone_set