Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

kattycris

Capturar mes da data

Recommended Posts

Boa noite.

 

Gente podem me ajudar? Eu estou fazendo um formulario em php e na altura que eu estou eu quero pegar o mes da data de cadastro no formulario da pagina em php para identificar o mes.

Identificando o mes eu vou converter o numero do mes pra texto e depois disso jogar o nome no mysql.

 

eu queria que alguem olhasse o codigo que eu fiz e visse se tem alguma coisa errada ou faltando. quando eu texto o cadastro so com a data pra pegar o mes a pagina em vez de mostrar o resultado nao mostra nada fica em branco.

Queria testar o codigo primeiro antes de mon tar todo o resto do codigo do formulario e a estrutura do mysql.

 

Testei varios jeitos. alguns apareceram mas foi a data q tava cadastrando.

 

se alguem puder me ajudar agradeço

 

<?php
function capmes($data)
{
$data1 = explode("/",$data);
switch (int($data1[1]))
{
case 1: $data1 = "Janeiro"; break;
case 2: $data1 = "Fevereiro"; break;
case 3: $data1 = "Março"; break;
case 4: $data1 = "Abril"; break;
case 5: $data1 = "Maio"; break;
case 6: $data1 = "Junho"; break;
case 7: $data1 = "Julho"; break;
case 8: $data1 = "Agosto"; break;
case 9: $data1 = "Setembro"; break;
case 10: $data1 = "Outubro"; break;
case 11: $data1 = "Novembro"; break;
case 12: $data1 = "Dezembro"; break;
}
echo $data1;
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

int() não é uma função

 

você pode usar int no casting:

 

$num = (int) $num;

 

se quiser usar como função, deve usar intval:

 

$num = intval( $num );

 

Habilite todas as exibições de erro como mostrado neste tópico. Isso fará com que qualquer erro seja exibido na tela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Particularmente eu faria assim:

function capmes($str){
$str = (int) $str;
   switch ($str){
        case 1:    $month = "Janeiro";     break;
        case 2:    $month = "Fevereiro";   break;
        case 3:    $month = "Março";       break;
        case 4:    $month = "Abril";       break;
        case 5:    $month = "Maio";        break;
        case 6:    $month = "Junho";       break;
        case 7:    $month = "Julho";       break;
        case 8:    $month = "Agosto";      break;
        case 9:    $month = "Setembro";    break;
        case 10:   $month = "Outubro";     break;
        case 11:   $month = "Novembro";    break;
        case 12:   $month = "Dezembro";    break;
        default:   $month = "Erro";        break;
 
   }
    return $month;
}

echo 'Estamos no mês de '.capmes(date('m'));

E pronto!

Já na sua função, acredito que o único erro seja o que o Beraldo disse mesmo o (int) não é uma função.

Compartilhar este post


Link para o post
Compartilhar em outros sites


echo mes('15/03/2015'); // Março

 

function mes($date){

setlocale(LC_ALL, 'ptb');

$format = date('Y-m-d', strtotime(str_replace('/', '-', $date)));

return ucwords(strftime('%B', strtotime($format)));

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

nenhuma dessas funções adiantou. o int eu coloquei pq um amigo disse pra por. a que o hugo posto mostra janeiro.

 

é assim eu to com um formulario em que eu digito a data de cadastro. preciso pegar essa data e reconhecer o mes dela pois criei uma tabela no banco pra jogar o nome do mes tambem. é isso que eu quero e ate agora nao consegui.

quando clico em cadastrar ele joga pra tela onde eu to fazendo pra capturar todos os dados do formulario e jogar no banco. no da data to recendo em uma variavel e dai eu tenho jogar nessas funções pra reconhecer o mes e jogar o nome do mes depois no banco tbm.

 

ta complicado que eu ja vi um monte de exemplo e nada.


ha e no formulario o campo pra data eu coloquei nome data do tipo date pra vcs entenderem nao é tipo text...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, eu testei no meu PC o que mandei acima e funcionou normalmente, não sei qual dificuldade você teve...

function capmes($str){
$str = (int) $str;
   switch ($str){
        case 1:    $month = "Janeiro";     break;
        case 2:    $month = "Fevereiro";   break;
        case 3:    $month = "Março";       break;
        case 4:    $month = "Abril";       break;
        case 5:    $month = "Maio";        break;
        case 6:    $month = "Junho";       break;
        case 7:    $month = "Julho";       break;
        case 8:    $month = "Agosto";      break;
        case 9:    $month = "Setembro";    break;
        case 10:   $month = "Outubro";     break;
        case 11:   $month = "Novembro";    break;
        case 12:   $month = "Dezembro";    break;
        default:   $month = "Erro";        break;
 
   }
    return $month;
}
//$mes1 = capmes('1'); $mes2 = capmes('2'); etc... // algum mês
$mes = capmes(date('m')); // mes atual

Compartilhar este post


Link para o post
Compartilhar em outros sites

a sua função ta me trazendo o mes atual eu nao quero o mes atual e sim o mes q eu digitei na data la no formulario. tipo hj e o primeiro dia do mes de junho sendo q a doação foi feita ontem. se eu bota a data de ontem que é do mes anterior tem q pegar a do mes anterior nao a do atual...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Leia o que eu comentei, ele traz o mês atual porque eu to passando pra ele o mês atual

$mes = capmes(date('m')); // mes atual

nada que não possa ser feito dessa forma:

$mes = capmes('3'); // mes 3

é só ler o código '-'

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.