Para obter o resultado em português do Brasil, basta utilizar a função setlocale
do PHP para definir o local como pt_BR.utf-8
antes de chamar a função strftime
.
Veja como ficaria o código:
function data_extenso() {
setlocale(LC_TIME, 'pt_BR.utf-8');
$extenso = special_ucwords(strftime('%A, %d de %B de %Y', strtotime('today')));
return $extenso;
}
Dessa forma, a função strftime
irá formatar a data em português do Brasil, seguindo as regras de formatação definidas pela linguagem.
Porém, pode ser necessário definir o locale para toda a aplicação. Isso pode ser feito no início do seu script PHP, antes de chamar qualquer função que dependa do locale definido.
Além disso, é importante verificar se o locale pt_BR.utf-8
está disponível no sistema onde a aplicação está sendo executada. Se não estiver disponível, pode ser necessário instalar o pacote de localização correspondente no sistema operacional.
Aqui está um exemplo de como definir o locale pt_BR.utf-8
no início do seu script PHP:
setlocale(LC_ALL, 'pt_BR.utf-8');
Dessa forma, o locale será definido para toda a aplicação e a função strftime
irá formatar a data em português do Brasil.
Se ainda assim não funcionar, pode ser necessário verificar se o locale está disponível no sistema e se o formato da data está correto.
Também é possível traduzir a função manualmente para obter o resultado em português do Brasil. Aqui está um exemplo de como fazer isso:
phpCopy codefunction data_extenso() {
$dias_semana = array(
'Domingo',
'Segunda-feira',
'Terça-feira',
'Quarta-feira',
'Quinta-feira',
'Sexta-feira',
'Sábado'
);
$meses_ano = array(
'',
'Janeiro',
'Fevereiro',
'Março',
'Abril',
'Maio',
'Junho',
'Julho',
'Agosto',
'Setembro',
'Outubro',
'Novembro',
'Dezembro'
);
$data = date('Y-m-d');
$partes = explode('-', $data);
$dia = $partes[2];
$mes = $meses_ano[(int)$partes[1]];
$ano = $partes[0];
$dia_semana = $dias_semana[date('w', strtotime($data))];
$extenso = $dia_semana . ', ' . $dia . ' de ' . $mes . ' de ' . $ano;
return $extenso;
}
Nesse exemplo, a função utiliza arrays para armazenar os nomes dos dias da semana e dos meses do ano em português do Brasil. Em seguida, a função obtém a data atual e utiliza a função explode
para separar as partes da data em ano, mês e dia. Depois, a função formata a data no formato desejado utilizando os nomes dos dias da semana e dos meses do ano em português do Brasil.
Essa abordagem pode ser útil quando não é possível definir o locale corretamente ou quando é necessário personalizar a formatação da data. No entanto, é importante lembrar que essa solução pode ser menos flexível do que a utilização da função strftime
, que permite alterar a formatação da data de maneira mais fácil e com suporte a diversos idiomas.