[RESOLVIDO] - Data por extenso

Colegas eu tenho este codigo em php sera que existe alguma macro que faça isto, caso contrario posso inserir este código em onLoad para alimentar o campo ao entrar?

<?php
    $data = date('D');
    $mes = date('M');
    $dia = date('d');
    $ano = date('Y');
 
    $semana = array(
        'Sun' => 'Domingo',
        'Mon' => 'Segunda-Feira',
        'Tue' => 'Terca-Feira',
        'Wed' => 'Quarta-Feira',
        'Thu' => 'Quinta-Feira',
        'Fri' => 'Sexta-Feira',
                'Sat' => 'Sábado'
    );
 
    $mes_extenso = array(
        'Jan' => 'Janeiro',
        'Feb' => 'Fevereiro',
        'Mar' => 'Marco',
        'Apr' => 'Abril',
        'May' => 'Maio',
        'Jun' => 'Junho',
        'Jul' => 'Julho',
        'Aug' => 'Agosto',
        'Nov' => 'Novembro',
        'Sep' => 'Setembro',
        'Oct' => 'Outubro',
        'Dec' => 'Dezembro'
    );
 $data= $semana["$data"] . ", {$dia} de " . $mes_extenso["$mes"] . " de {$ano}";
?>

Obrigado

Olá, não sei se existe a macro, mas eu faço da seguinte forma.

setlocale(LC_ALL, ‘pt_BR’, ‘pt_BR.utf-8’, ‘pt_BR.utf-8’, ‘portuguese’);
date_default_timezone_set(‘America/Sao_Paulo’);

$data_extenso = strftime(’%A, %d de %B de %Y’, strtotime(‘today’));
Resultado: segunda-feira, 12 de setembro de 2016

Pra data não, mas aproveitando esse seu código criei apenas uma função que faça isso, como mostra no código abaixo:


function valorExtenso() {

    $data = date('D');
    $mes = date('M');
    $dia = date('d');
    $ano = date('Y');
 
    $semana = array(
        'Sun' => 'Domingo',
        'Mon' => 'Segunda-Feira',
        'Tue' => 'Terca-Feira',
        'Wed' => 'Quarta-Feira',
        'Thu' => 'Quinta-Feira',
        'Fri' => 'Sexta-Feira',
        'Sat' => 'Sábado'
    );
 
    $mes_extenso = array(
        'Jan' => 'Janeiro',
        'Feb' => 'Fevereiro',
        'Mar' => 'Marco',
        'Apr' => 'Abril',
        'May' => 'Maio',
        'Jun' => 'Junho',
        'Jul' => 'Julho',
        'Aug' => 'Agosto',
        'Nov' => 'Novembro',
        'Sep' => 'Setembro',
        'Oct' => 'Outubro',
        'Dec' => 'Dezembro'
    );

 $data= $semana["$data"] . ", {$dia} de " . $mes_extenso["$mes"] . " de {$ano}";

 return $data;	
	
}	

echo valorExtenso();

Usando os recursos já existentes do SC:

$this->nm_data->SetaData({DataHora}, "YYYY-MM-DD HH:II:SS");  // aqui vc passa a data

If (empty({Mascara})) {
  	$_mascara=" l, d @?#?@d@?#?@e F @?#?@d@?#?@e Y g:i:s";
}else{
	$_mascara=str_replace("|","@?#?@",{Mascara});
}

{DataExtenso} = $this->nm_data->FormataSaida($_mascara);  //aqui vc formata a data com a saida desejada

Exemplo de mascara: l, d |d|e F |d|e Y g|hi|ms|s |l|e|g|a|l
Data: 14/09/2016 00:00:00
Resultado: Quarta, 14 de Setembro de 2016 0h00m00s legal

Colegas de coração muito obrigado pelas respostas, e aqui vai um pedido a turma que tem acesso ao programa solicitar esta macro.
Abraço em todos vou aproveitas os codigos e analizar um por um.

Colega seu codigo esta otimo e rapido falta so fechar um parentese
$data_extenso = strftime(’%A, %d de %B de %Y’, strtotime(‘today’)); // so para quem for usar nao se esquecer deste
Boa noite

Eu tinha visto, isso hehe; mas já vai que usar essas funções e não a macros do SC, vou deixar 3 prontas aqui para quem quiser adicionar em sua biblioteca interna padrão Pública:

<?php /* Função ler a data e transformar em String em formato: Dia do mês de Ano. Data Formato = AAAA-MM-DD echo DataExtenso({DataNascto}); ou echo $this->DataExtenso({DataNascto}); */ function DataExtenso($data_var) { if (empty($data_var)) { return null; } setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese'); date_default_timezone_set('America/Sao_Paulo'); return strftime('%A, %d de %B de %Y', strtotime($data_var)); } // Fim da Função: DataExtenso($data_var) ?> <?php /* Função para pegar o nome do mês de qualquer data em português Data Formato = AAAA-MM-DD echo NomedoMes({DataNascto}); ou echo $this->NomedoMes({DataNascto}); */ function NomedoMes($data_var) { if (empty($data_var)) { return null; } setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese'); date_default_timezone_set('America/Sao_Paulo'); return strftime('%B', strtotime($data_var)); } // Fim da Função: NomedoMes($data_var) ?> <?php /* Função para pegar o dia da semana de qualquer data em português Data Formato = AAAA-MM-DD echo DiadaSemana({DataNascto}); ou echo $this->DiadaSemana({DataNascto}); */ function DiadaSemana($data_var) { if (empty($data_var)) { return null; } setlocale(LC_ALL, 'pt_BR', 'pt_BR.utf-8', 'pt_BR.utf-8', 'portuguese'); date_default_timezone_set('America/Sao_Paulo'); $_diasemana = array('Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta', 'Sexta', 'Sabado'); $_diasemana_numero = date('w', strtotime($data_var)); return $_diasemana[$_diasemana_numero]; } // Fim da Função: DiadaSemana($data_var) ?>

Edivaldo, como você ainda usa bases com 8859-1, pode-se optar por fazer bibliotecas por tipo de BANCO ou charsets, ai nessas libs, você já configura correto o charset.

Eu tenho libs públicas separadas para MySQL/MariaDB charset utf8, Firebird 8859-1 e SQLITE utf8, já que entre bancos o SQL tem algumas particularidades diferentes.

Ou pode-se remover os códigos das funções e colocar ele no onload do login da senha do projeto.
setlocale(LC_ALL, ‘pt_BR’, ‘pt_BR.utf-8’, ‘pt_BR.utf-8’, ‘portuguese’);
date_default_timezone_set(‘America/Sao_Paulo’);

Jailton obrigado pela força entendido.

Amigo, passando aqui pra te agradecer. Deus te abançoe!