Duvida em criar function retornaDataMes($data)
31/08/2012
0
Crei uma classe chamada conteudoBLL, nesta classe eu quero criar método / função que retorne por extenso o mês de acordo com o valor que minha data recebe...
Bom, vamos ao meu código pronto:
class conteudoBLL{ function retornaDataMes($data) { $data = explode("/",$data); switch($data[1]) { case "1":{$data[1]="Janeiro";break;} case "2":{$data[1]="Fevereiro";break;} case "3":{$data[1]="Março";break;} case "4":{$data[1]="Abril";break;} case "5":{$data[1]="Maio";break;} case "6":{$data[1]="Junho";break;} case "7":{$data[1]="Julho";break;} case "8":{$data[1]="Agosto";break;} case "9":{$data[1]="Setembro";break;} case "10":{$data[1]="Outubro";break;} case "11":{$data[1]="Novembro";break;} case "12":{$data[1]="Dezembro";break;} } } } $objConteudoBLL = new conteudoBLL();
em uma página que eu queira usar o método ou função acima, eu estou escrevendo isto:
require_once "bll/conteudobll.php"; echo'tem que ser aqui porra, que merda esse codigo nao funcionar arrr' . $data[1] = $objConteudoBLL->retornaDataMes($row['data_noticia']);
Bom, como podem ver, eu devo está errando em alguma coisa...
o lance é que se eu cologo a função explode e loop while dentro da página que eu quero usar, tudo funciona direitinho...
Desde já agradeço a ajuda de todos!
Samuel
Posts
31/08/2012
Samuel
function data_extenso ($data = false) { if ($data) { $mes = date('m', strtotime($data)); } else { $mes = date('m'); $data = date('Y-m-d'); } $meses = array ( '01' => 'Janeiro', '02' => 'Fevereiro', '03' => 'Março', '04' => 'Abril', '05' => 'Maio', '06' => 'Junho', '07' => 'Julho', '08' => 'Agosto', '09' => 'Setembro', '10' => 'Outubro', '11' => 'Novembro', '12' => 'Dezembro' ); $dias = array ( 0 => 'Domingo', 1 => 'Segunda-feira', 2 => 'Terça-feira', 3 => 'Quarta-feira', 4 => 'Quinta-feira', 5 => 'Sexta-feira', 6 => 'Sábado' ); return $dias[date('w', strtotime($data))] . ', ' . date('d', strtotime($data)) . ' de ' . $meses[$mes] . ' de ' . date('Y', strtotime($data)); }
segue link:
[url]http://www.zatecus.com/blog-php-exibindo-uma-data-por-extenso-post.html[/url]
Desde já agradeço a todos!!
Best Regards,
Samuel Diogo
02/10/2012
Bruno Betioli
class conteudoBLL{ function retornaDataMes($data) { $data = explode("/",$data); switch($data[1]) { case "1":{$data[1]="Janeiro";break;} case "2":{$data[1]="Fevereiro";break;} case "3":{$data[1]="Março";break;} case "4":{$data[1]="Abril";break;} case "5":{$data[1]="Maio";break;} case "6":{$data[1]="Junho";break;} case "7":{$data[1]="Julho";break;} case "8":{$data[1]="Agosto";break;} case "9":{$data[1]="Setembro";break;} case "10":{$data[1]="Outubro";break;} case "11":{$data[1]="Novembro";break;} case "12":{$data[1]="Dezembro";break;} } return $data[1]; } }
Note que coloquei um return na função logo depois do switch.
E no código onde vc vai mostrar o resultado:
require_once "bll/conteudobll.php"; $objConteudoBLL = new conteudoBLL(); echo'tem que ser aqui porra, que merda esse codigo nao funcionar arrr'.$objConteudoBLL->retornaDataMes($row['data_noticia']);
Vê aí se deu certo. Vou ver um jeito de usar o segundo com switch.
02/10/2012
Bruno Betioli
function data_extenso ($data = false) { if ($data) { $dia = date('w', strtotime($data)); $data = explode("-", $data); } else { $dia = date('w'); $data = date('Y-m-d'); $data = explode("-", $data); } switch($data[1]) { case "1":{$data[1]="Janeiro";break;} case "2":{$data[1]="Fevereiro";break;} case "3":{$data[1]="Março";break;} case "4":{$data[1]="Abril";break;} case "5":{$data[1]="Maio";break;} case "6":{$data[1]="Junho";break;} case "7":{$data[1]="Julho";break;} case "8":{$data[1]="Agosto";break;} case "9":{$data[1]="Setembro";break;} case "10":{$data[1]="Outubro";break;} case "11":{$data[1]="Novembro";break;} case "12":{$data[1]="Dezembro";break;} } switch($dia){ case "0": {$dia = 'Domingo'; break;} case "1": {$dia = 'Segunda-feira'; break;} case "2": {$dia = 'Terça-feira'; break;} case "3": {$dia = 'Quarta-feira'; break;} case "4": {$dia = 'Quinta-feira'; break;} case "5": {$dia = 'Sexta-feira'; break;} case "6": {$dia = 'Sábado'; break;} } return $dia . ', ' . $data[2] . ' de ' . $data[1] . ' de ' . $data[0]; }
e para mostrar o resultado, seguindo aquele seu exemplo rsrsrs:
require_once "bll/conteudobll.php"; $objConteudoBLL = new conteudoBLL(); echo'tem que ser aqui porra, que merda esse codigo nao funcionar arrr '.$objConteudoBLL->data_extenso($row['data_noticia']);
O caso é que, se a data estiver salva no banco com o formato dd/mm/yyyy, você terá que alterar para o formato yyyy-mm-dd, que é o padrao que a função strtotime do php reconhece. Tive esse problema no banco, para alterar, tive que fazer um script para capturar todas as datas do banco, transformá-las para o formato yyyy-mm-dd, mostrá-las em um input text e corrigir manualmente as poucas datas que ainda ficaram erradas. Criei um loop para salvar todas com o novo formato e, só então, alterei o campo da data no banco de varchar para date. Coisa de quem está iniciando rsrsrs. Qualquer coisa dá um grito.
02/10/2012
Samuel
Testei aqui e funfou que uma beleza! obrigado por compartilhar!
sds,
Samuel Diogo
Clique aqui para fazer login e interagir na Comunidade :)