Resolvido - Dias do mês por extenso - Muito obrigada meninos!

Código funcionando na página 3.

Olá rapazes,

Estou começando no PHP e scriptcase, fiz alguns formulários seguindo dicas daqui e dos vídeos, e preciso fazer uma coisa que não achei em lugar algum. Estou terminando meu TCC pra faculdade e só falta um detalhe:

Preciso fazer que isto 25/07/2017 = vinte e cinco de julho de dois mil e dezessete.
Ou que isto: 25 de julho de 2017 seja igual ao exemplo acima.

Veja a reposta: “Abordagem com IntlDateFormatter” :

https://pt.stackoverflow.com/questions/8317/como-fazer-a-função-date-formatar-uma-data-em-português

Obrigada por responder. eu vi esse comentário numa das minhas pesquisas mas pelo que li e entendi ele não retorna o dia e o ano em extenso. Se faz eu não entendi como usá-lo. infelizmente tenho dois dias apenas pra terminar o projeto. A apresentação é nessa sexta dia 28. Ainda bem que encontrei o scriptcase e me familiarizei rápido com a ferramenta que me poupou muito tempo. Quero muito ser aprovada e poder deixar minha vida de diarista pra trás.

Olá,

http://codigofonte.uol.com.br/codigos/mostrar-data-por-extenso-com-php

O link acima mostra como fazer para mostrar a data por extenso. Para o caso do ano, basta fazer o switch com os anos, para retornarem os anos por extenso.

Muito obrigada! muito obrigada! estou tão feliz! Você nem imagina.

Consegui fazer! muito obrigada!

caramba, testou com uma dificuldade aqui:

campoA= data 25/07/2017 campoB = 25/08/2017

consigo pegar o valor do campoA (hoje) por extenso, mas não do campoB.

configure o formato interno do campo b.

meu campoB está como data no scriptcase (ano-mes-dia).
No formulário, tem um campoD que deveria pegar o campoB e colocar por extenso. Isso que não consigo

Vou explicar melhor:

Tenho dois campos de data. o primeiro pega a data de hoje e o segundo de 30 dias após o primeiro. Isso consegui fazer.
Quando vai imprimir o documento a DATA A (hoje) eu pego por extenso sem problema - echo ({campoC} ("$dia de $mes de $ano")); - funciona.

Quando eu vou pegar o campoB ele não pega a data marcada mas sim a de hoje, igual ao campoA.

Como estás fazendo pra gerar a segunda data? Poste o teu código aqui, por favor.

$add_days = 0; //adding 30 days
$add_months = 1; //adding nothing to months
$add_years = 0; //adding nothing to years
{data2} = sc_date({data1}, ‘yyyy-mm-dd’, ‘+’, $add_days, $add_months, $add_years);

Bem, se deres um echo nos dois campos ({data1} e {data2}) o que eles mostram? O que Haroldo falou faz sentido.

quando dou um echo no data1 = hoje - correto
quando dou um echo no data1_ext (data 1 por extenso) = vinte e cinco de julho de dois mil e dezessete - valor correto

echo data2 = 25/08/2017 - correto
echo data2_ext = 2017/08/25 - errado - deveria ser: vinte e cinco de agosto de dois mil e dezessete.

não estou sabendo como dizer para o campo data2_ext que ele deve ser igual ao data2, porém mostrar a data por extenso. Esse campo data2_ext está como texto

Faça assim:

{data2} = sc_date({data1}, ‘dd-mm-yyyy’, ‘+’, $add_days, $add_months, $add_years);

E tente novamente.

data2 = 20/70/8

eis o código que coloquei num evento PHP pra descrever a data por exetenso:

[code]// leitura das datas
$dia = date(‘d’);
$mes = date(‘m’);
$ano = date(‘Y’);

switch ($dia){

case 1: $dia = “primeiro dia”; break;
case 2: $dia = “dois dias”; break;
case 3: $dia = “três dias”; break;
case 4: $dia = “quatro dias”; break;
case 5: $dia = “cinco dias”; break;
case 6: $dia = “seis dias”; break;
case 7: $dia = “sete dias”; break;
case 8: $dia = “oito dias”; break;
case 9: $dia = “nove dias”; break;
case 10: $dia = “dez dias”; break;
case 11: $dia = “onze dias”; break;
case 12: $dia = “doze dias”; break;
case 13: $dia = “treze dias”; break;
case 14: $dia = “catorze dias”; break;
case 15: $dia = “quinze dias”; break;
case 16: $dia = “dezesseis dias”; break;
case 17: $dia = “dezessete dias”; break;
case 18: $dia = “dezoito dias”; break;
case 19: $dia = “dezenove dias”; break;
case 20: $dia = “vinte dias”; break;
case 21: $dia = “vinte e um dias”; break;
case 22: $dia = “vinte e dois dias”; break;
case 23: $dia = “vinte e três dias”; break;
case 24: $dia = “vinte e quatro dias”; break;
case 25: $dia = “vinte e cinco dias”; break;
case 26: $dia = “vinte e seis dias”; break;
case 27: $dia = “vinte e sete dias”; break;
case 28: $dia = “vinte e oito dias”; break;
case 29: $dia = “vinte e nove dias”; break;
case 30: $dia = “trinta dias”; break;
case 31: $dia = “trinta e um dias”; break;

}

// configuração mes

switch ($mes){

case 1: $mes = “Janeiro”; break;
case 2: $mes = “Fevereiro”; break;
case 3: $mes = “Março”; break;
case 4: $mes = “Abril”; break;
case 5: $mes = “Maio”; break;
case 6: $mes = “Junho”; break;
case 7: $mes = “Julho”; break;
case 8: $mes = “Agosto”; break;
case 9: $mes = “Setembro”; break;
case 10: $mes = “Outubro”; break;
case 11: $mes = “Novembro”; break;
case 12: $mes = “Dezembro”; break;

}

switch ($ano){

case 2017: $ano = “dois mil e dezessete”; break;
case 2018: $ano = “dois mil e dezoito”; break;
}

{data1_ext} = ("$dia de $mes de $ano"); //pegando a data de hoje - funciona perfeitamente
{data2_ext} = NAO SEI COMO FAZER [/code]

algo que só percebi agora é que esse código só pega a data de hoje (ou do sistema) e coloca por extenso.
se eu colocar o data1 diferente de HOJE ele continua descrevendo a data de hoje.

{data1} = 17/07/2017
{data1_ext} = vinte e cinco de julho de dois mil e dezessete.

setlocale(LC_TIME, ‘pt_BR’, ‘pt_BR.utf-8’, ‘pt_BR.utf-8’, ‘portuguese’);
$_DATA=strftime("%d de %B de %Y", strtotime({sua_data}));

{sua_data} deve ter o formato interno no padrão brasileiro.

quando uso esse código sozinho ele retorna “25 de julho de 2017” eu preciso de vinte e cinco de julho de dois mil e dezessete.
colocando esse código junto ao que postei acima, não gera o form. Não sei onde colocar esse código junto com o meu.

Desculpe Haroldo, é a segunda vez que você tenta me ajudar e eu não consigo entender. Tenha paciência comigo! Só falta essa parte pra terminar.

Ola ve se te ajuda a seguinte função, coloquei ela na Biblioteca Interna no publico e para usa-la habilita em Programação Biblioteca Interna.

function DataExtenso(){
3| $ano = date(‘Y’);
4| $dia = date(‘d’)-0;
5| $dsemana= date(‘w’);
6| $data = date(‘n’);
7| $mes[1] =‘janeiro’;
8| $mes[2] =‘fevereiro’;
9| $mes[3] =‘março’;
10| $mes[4] =‘abril’;
11| $mes[5] =‘maio’;
12| $mes[6] =‘junho’;
13| $mes[7] =‘julho’;
14| $mes[8] =‘agosto’;
15| $mes[9] =‘setembro’;
16| $mes[10]=‘outubro’;
17| $mes[11]=‘novembro’;
18| $mes[12]=‘dezembro’;
19| $semana[0] = ‘Domingo’;
20| $semana[1] = ‘Segunda-Feira’;
21| $semana[2] = ‘Terça-Feira’;
22| $semana[3] = ‘Quarta-Feira’;
23| $semana[4] = ‘Quinta-Feira’;
24| $semana[5] = ‘Sexta-Feira’;
25| $semana[6] = ‘Sádado’;
26| $dataextens = $dia.’ de ‘.$mes[$data].’ de '.$ano. ‘.’;
27| return $dataextens;
28| }