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

https://www.dirceuresende.com/blog/escrevendo-numero-por-extenso-no-php/

ainda estou um pouco perdida.

eu consigo com o código que postei acima pegar a data de HOJE por extenso do jeito que eu quero. O que eu não consigo é pegar uma data qualquer por extenso.

se o campo {data1} for igual a HOJE eu consigo sem problemas. Mas se o campo {data1} for igual a 08/08/2017 eu não consigo.
Não estou sabendo dizer que o campo {data1_ext} deve ser igual ao {data1} só que por extenso nesse formato: vinte e seis de julho de dois mil e dezessete.

Danubia vamos lá:

No teu código faça o seguinte:

[data_nova] = date(‘d/m/Y’, strtotime({data2}));

E use a variável [data_nova} na função para ver como retorna por extenso.

ele me retorna a data de hoje assim; 26 de Julho de 2017. Veja o código abaixo.

[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
[data_nova] = date(‘d/m/Y’, strtotime({data2})); [/code]

Faltou você executar a mesma função com a variável [data_nova].

se estou fazendo certo, fiz assim:

[nova_data] = ("$dia de $mes de $ano");

Danubia,

Acho que não me fiz entender… tens que executar a função INTEIRA, com a variável [nova_data], pra poder produzir o resultado que desejas. O melhor a fazer é você pegar essa função e criar um método PHP (tipo uma função chamada Gera_Extenso), onde ele receba um parâmetro. Assim, no evento onde você colocou esse código todo, você faria mais ou menos assim:

{data1_ext} = Gera_Extenso({data1});
{data2_ext} = Gera_Extenso({data2});

E a função (método) Gera_Extenso você colocaria o teu código que gera o extenso e faz o retorno para o campo adequado.

olá kleber! Muito obrigada. Voltei agora de mais uma longa noite de trabalho e vou executar o que vc disse. Estou nervosa porque hoje é meu último dia pra resolver isso. Amanha tem a apresentação. Se seu imaginasse que nesse fórum vocês seriam diferentes, eu já teria postado aqui. Como não frequento fóruns, postei em alguns mas ou fui deixada de lado ou hostilizada por pedir ajuda com tão pouco conhecimento. Muito obrigada a você, o Haroldo e aos outros.

Danubia,

Faça as alterações e testes com calma, e tudo vai dar certo. Estamos aqui para ajudar, sempre que possível.

Estudando os códigos postados aqui e assistindo um vídeo da Camila Moreira sobre colocar parâmetros nas funções já me esclareceu bastante coisa.

Eu coloco como parâmetro na minha função a variável [nova_data]. eu crio essa variável no evento ajax onchange do campo data1. Quando muda o campo eu vejo a variável na opção DADOS DA SESSÃO.

Parâmetros: nome: dataext1 – por valor – [nova_data]

no mesmo evento ajax onchange do campo data1 eu faço assim:

[nova_data] = {data1};
$data1 = [nova_data];

vou na aplicação e marco a variável como POST GET e SESSION (sim os três). E Deixo como saída. Como disse, ao mudar o campo data1, eu vejo o valor correto do campo nas opções da sessão.

Mas ainda assim ele me retorna a data de hoje por extenso.

Nenhum progresso ainda, mas no campo data1_ext eu consigo mostrar o valor do campo data1 no formato yyyy-mm-dd junto com a data de hoje por extenso. Fica assim;

2017-07-15 vinte e sete de julho de dois mil e dezessete.

eu passei como parâmetro a variável data1_ext — por valor ---- [nova_data] // [nova_data] = {data1}

{data1} e {data2} = data yyyymmdd (não achei como mudar isso no SC9)

{data1_ext} e {data2_ext} = texto pra receber a informação da função da data em extenso.

[code]$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;
case 2019: $ano = “dois mil e dezenove”; break;
case 2020: $ano = “dois mil e vinte”; break;
case 2021: $ano = “dois mil e vinte e um”; break;
case 2022: $ano = “dois mil e vinte e dois”; break;
case 2023: $ano = “dois mil e vinte e três”; break;
case 2024: $ano = “dois mil e vinte e quatro”; break;
case 2025: $ano = “dois mil e vinte e cinco”; break;
case 2026: $ano = “dois mil e vinte e seis”; break;
case 2027: $ano = “dois mil e vinte e sete”; break;
case 2028: $ano = “dois mil e vinte e oito”; break;
case 2029: $ano = “dois mil e vinte e nove”; break;
case 2030: $ano = “dois mil e trinta”; break;
case 2031: $ano = “dois mil e trinta e um”; break;
case 2032: $ano = “dois mil e trinta e dois”; break;
case 2033: $ano = “dois mil e trinta e três”; break;
case 2034: $ano = “dois mil e trinta e quatro”; break;
case 2035: $ano = “dois mil e trinta e cinco”; break;
case 2036: $ano = “dois mil e trinta e seis”; break;
case 2037: $ano = “dois mil e trinta e sete”; break;
case 2038: $ano = “dois mil e trinta e oito”; break;
case 2039: $ano = “dois mil e trinta e nove”; break;
case 2040: $ano = “dois mil e quarenta”; break;
case 2041: $ano = “dois mil e quarenta e um”; break;
case 2042: $ano = “dois mil e quarenta e dois”; break;
case 2043: $ano = “dois mil e quarenta e três”; break;
case 2044: $ano = “dois mil e quarenta e quatro”; break;
case 2045: $ano = “dois mil e quarenta e cinco”; break;
case 2046: $ano = “dois mil e quarenta e seis”; break;
case 2047: $ano = “dois mil e quarenta e sete”; break;
case 2048: $ano = “dois mil e quarenta e oito”; break;
case 2049: $ano = “dois mil e quarenta e nove”; break;
case 2050: $ano = “dois mil e cinquenta”; break;
}

$dataextens = ("$dia de $mes de $ano");[/code]

olhando meu código, percebi que ele pega a data de hoje porque não disse pra ele qual data pegar. Mas tbm não sei como dizer que a data vem do campo {data1}.

coloquei como parêmetro a variável $dataextns que recebe seu valor da variável [data1] gerada no evento onBeforeInsert e no evento onValidate eu coloquei assim:

$dataextens = [data1];
dataextens($dataextens); // chamo o método PHP com parêmtro $dataextens que recebe seu valor da variável [data1]

você não está confundindo [] com {}?

[] variável

{campo}

certo?

Danubia,

Na tua função precisas usar assim:

$dia = date(‘d’,strtotime([teu_parametro_de_data]));
$mes = date(‘m’,strtotime([teu_parametro_de_data]));
$ano = date(‘Y’,strtotime([teu_parametro_de_data]));

Onde [teu_parametro_de_data] é a variável que está recebendo a referência na chamada da função.

Ola

Segue a funçao para qualquer data

$dma = "12-06-2016";

function DataExtenso($dma){
$ano = date(‘Y’,strtotime($dma));
$dia = date(‘d’,strtotime($dma))-0;
$dsemana= date(‘w’,strtotime($dma));
$data = date(‘n’,strtotime($dma));
$mes[1] =‘janeiro’;
$mes[2] =‘fevereiro’;
$mes[3] =‘março’;
$mes[4] =‘abril’;
$mes[5] =‘maio’;
$mes[6] =‘junho’;
$mes[7] =‘julho’;
$mes[8] =‘agosto’;
$mes[9] =‘setembro’;
$mes[10]=‘outubro’;
$mes[11]=‘novembro’;
$mes[12]=‘dezembro’;
$semana[0] = ‘Domingo’;
$semana[1] = ‘Segunda-Feira’;
$semana[2] = ‘Terça-Feira’;
$semana[3] = ‘Quarta-Feira’;
$semana[4] = ‘Quinta-Feira’;
$semana[5] = ‘Sexta-Feira’;
$semana[6] = ‘Sádado’;
$dataextens = $dia.’ de ‘.$mes[$data].’ de '.$ano. ‘.’;
return $dataextens;
}

echo "Belo Horizonte, " . DataExtenso($dma);

Olá meninos! Consegui. Já estou finalizando aqui e depois sigo pra faculdade. Vou deixar o código no post pra quem precisar.

Queria agradecer a vocês de todo coração. O que vcs fizeram por mim, poucos fizeram durante esses meus 38 anos de vida. Nasci e vivi na rua até os 18 anos. Quando eu “acordei” daquela vida e percebi que eu não podia mais viver daquele jeito, viciada e com um filho de 2 anos chorando de fome quase todos os dias eu resolvi partir pra luta.

Me alfabetizei e estudei. Fiz o primário, ginásio e segundo grau. Descobri o gosto pela leitura e gosto de falar e escrever corretamente (quase sempre), gosto da nossa língua. E hoje dou mais uma passo na vida. Apresentando meu TCC e me formando na faculdade.

FIz ciências da computação, mas não vou trabalhar com isso. Fiz poque cabia no orçamento. Sou diarista e limpo salas comerciais a noite. Com esse diploma, dou mais um passo para melhorar meu futuro. Descobri que sou muito boa em desenhar circuitos e placas e programar CIs. Esse diploma vai me dar a chance de me candidatar e vagas nessa área, que só aceitam se a pessoa tiver superior completo (não importa a área). Fiz eletrônica, eletrotécnica também.

Se vou me formar, devo isso a vocês a todos (ainda que poucos) me ajudaram nessa caminhada. O que vocês fizeram por mim, pode parecer pouco pra vocês, mas tem um alto valor pra mim, pois sem a ajuda de vocês, eu não teria o sistema funcionando corretamente e poderia não ser aprovada. Muito obrigada a todos vocês: Ronyan ALves, Kleyber, Haroldo e Edivaldo. Não conheço vocês, mas desejo tudo de bom em suas vidas. Não consigo expressar o quão feliz e grata estou nesse momento.

Muito obrigada. De coração!

Segue o código:

[code]$dma = “{data1}”;

$dia = date(‘d’,strtotime($dma))-0; // não sei pra que serve esse zero.
$mes = date(‘m’,strtotime($dma));
$ano = date(‘Y’,strtotime($dma));

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;
case 2019: $ano = “dois mil e dezenove”; break;
case 2020: $ano = “dois mil e vinte”; break;
case 2021: $ano = “dois mil e vinte e um”; break;
case 2022: $ano = “dois mil e vinte e dois”; break;
case 2023: $ano = “dois mil e vinte e três”; break;
case 2024: $ano = “dois mil e vinte e quatro”; break;
case 2025: $ano = “dois mil e vinte e cinco”; break;
case 2026: $ano = “dois mil e vinte e seis”; break;
case 2027: $ano = “dois mil e vinte e sete”; break;
case 2028: $ano = “dois mil e vinte e oito”; break;
case 2029: $ano = “dois mil e vinte e nove”; break;
case 2030: $ano = “dois mil e trinta”; break;
case 2031: $ano = “dois mil e trinta e um”; break;
case 2032: $ano = “dois mil e trinta e dois”; break;
case 2033: $ano = “dois mil e trinta e três”; break;
case 2034: $ano = “dois mil e trinta e quatro”; break;
case 2035: $ano = “dois mil e trinta e cinco”; break;
case 2036: $ano = “dois mil e trinta e seis”; break;
case 2037: $ano = “dois mil e trinta e sete”; break;
case 2038: $ano = “dois mil e trinta e oito”; break;
case 2039: $ano = “dois mil e trinta e nove”; break;
case 2040: $ano = “dois mil e quarenta”; break;
case 2041: $ano = “dois mil e quarenta e um”; break;
case 2042: $ano = “dois mil e quarenta e dois”; break;
case 2043: $ano = “dois mil e quarenta e três”; break;
case 2044: $ano = “dois mil e quarenta e quatro”; break;
case 2045: $ano = “dois mil e quarenta e cinco”; break;
case 2046: $ano = “dois mil e quarenta e seis”; break;
case 2047: $ano = “dois mil e quarenta e sete”; break;
case 2048: $ano = “dois mil e quarenta e oito”; break;
case 2049: $ano = “dois mil e quarenta e nove”; break;
case 2050: $ano = “dois mil e cinquenta”; break;
}

// coloquei a variavel $dataextens como atributo por valor. verificar se preciso mesmo dela. melhor não mexer. está funcionando.

{data1_ext} = ("$dia de $mes de $ano");[/code]

Danubia,

Particularmente fico feliz em poder ajudar, ainda mais vendo a tua história e já sabendo que és uma vitoriosa!!! Deus te abençoe sempre na tua jornada e estamos aqui para ajudar.