Fórum Duvida em criar function retornaDataMes($data) #423031
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
Curtir tópico
+ 0Posts
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
Gostei + 0
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.
Gostei + 0
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.
Gostei + 0
02/10/2012
Samuel
Testei aqui e funfou que uma beleza! obrigado por compartilhar!
sds,
Samuel Diogo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)