Formatar data na impressão de pdf com FPDF

816 views
Skip to first unread message

Daniel_RM

unread,
Feb 23, 2012, 2:11:45 PM2/23/12
to LISTA PHP
Tenho uma impressão de pdf que, os dados que irão alimentar esse pdf
vem de um banco de dados mysql, quando imprimo esse pdf a célula onde
fica a data vem no formato Y/d/m.. gostaria que ela ficasse no formato
brasileiro d/m/Y.. mas não estou conseguindo.. ja tentei algumas
coisas como isso " $pdf->Cell(35, 5, $rs->dt_venda('d/m/Y'), 1, 0);"
mas ainda não funcionou nada...

Alguém pode me ajudar?? Obrigado.

Meu arquivo está assim:

<?php
include_once("../../adodb/adodb.inc.php");

mysql_connect('localhost','','');
mysql_select_db('jced');

require_once("../fpdf/fpdf.php");
session_start();



$sql = "select * from vendas_temp order by nome_cliente";

$pdf = new FPDF('P');

//$pdf->SetName("Listagem dos clientes");
$pdf->Open();
$pdf->AddPage();
$pdf->Image('imagens/em.png');

$pdf->SetFont('Arial', 'B', 8);
$pdf->Cell(10,25,"Avenida, 2072 loja 02 - Bairro – CEP:
900000-000
– CIDADE - TELEFONE: (00) - 0000-0000",0,0);
$pdf->Cell(0,0,'Pedidos - Página '.$pdf->PageNo().'',
0,0,'C');
$pdf->SetXY(10, 45);

$pdf->Cell(10, 5, "Id", 1, 0);
$pdf->Cell(50, 5, "Nome", 1, 0);
$pdf->Cell(35, 5, "IMEI", 1, 0);
$pdf->Cell(35, 5, "NTC", 1, 0);
$pdf->Cell(35, 5, "Data", 1, 0);
$pdf->Cell(20, 5, "Valor", 1, 1);

$pdf->SetX(-30);

$pdf->line(10, 40, $pdf->GetX(), 40);
$pdf->SetXY(10, 50);
$pdf->SetFont('Arial', '', 8);



$ds = mysql_query($sql);
while ($rs = mysql_fetch_object($ds))
{


$pdf->Cell(10, 5, $rs->id, 1, 0);
$pdf->Cell(50, 5, $rs->nome_cliente, 1, 0);
$pdf->Cell(35, 5, $rs->imei, 1, 0);
$pdf->Cell(35, 5, $rs->ntc, 1, 0);
$pdf->Cell(35, 5, $rs->dt_venda, 1, 0); //AQUI ESTÁ MEU
PROBLEMA NA HORA DE FORMATAR A DATA DO BANCO
$pdf->Cell(20, 5, $rs->valor, 1, 1);
}




$arquivo = "Pedidos - Relatorio_".date('d/m/Y').".pdf";

$pdf->Output( $arquivo,'D' );
?>

Tales Augusto

unread,
Feb 23, 2012, 2:51:18 PM2/23/12
to list...@googlegroups.com
Olá,

Talvez isso possa te ajudar

--
============================================================
JQUERY MAGAZINE > http://www.jquerymagazine.com.br
--
PHP MAGAZINE > http://www.phpmagazine.com.br
--
LISTA NODE.JS > https://groups.google.com/group/lista-nodejs?hl=pt-br
--
AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
--
PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
--
DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
============================================================



--
Atenciosamente,

Tales Augusto,
www.portaldedesign.com
Siga-me: @talesdejesus
ta...@portaldedesign.com
(85) 8748-5097 / 97050186

Norivan Oliveira

unread,
Feb 23, 2012, 5:25:40 PM2/23/12
to list...@googlegroups.com
Rapaz pelo que vi isso é um relatório né? Porque não faz o correto e usa um gerador de relatório??
Norivan Oliveira
Data Solution TI - Fabrica de Softwares
Tel's / Phone's: +55 (31) 3318-7252 / +55 (31) 3273-4534
Web: brservidor.com / desenvolvimentoemarketing.com.br
"Não há destino que juntos não possamos fazer."

Gabriel Mendonça

unread,
Feb 24, 2012, 1:17:36 AM2/24/12
to list...@googlegroups.com
Não é o melhor jeito mais o código abaixo funcionaria.

implode("/",array_reverse(explode("-",$campo[data])));

explicação, se é que precisa:

$data = "2003-02-01";
$data = explode("-", $data); // agora data é um array $data[0] = 2003, $data[1] = 02, $data[2] = 01,
$data = array_reverse($data); // agora data é um array ao contrário: $data[0] = 01, $data[1] = 02, $data[2] = 2003  
$data = implode("/",$data); // agora data é uma string "01/02/2003"

Valeu espero ter ajudado!
Att. Gabriel Bruno de Oliveira Mendonça
Mundo DS - www.mundods.com.br
Desenvolvedor - Departamento WEB

Daniel_RM

unread,
Feb 24, 2012, 5:56:08 AM2/24/12
to LISTA PHP
Valeu pessoal, irei testar.. e reporto para vcs os resultados.

Abraço.

On 24 fev, 04:17, Gabriel Mendonça <nightcerta....@gmail.com> wrote:
> Não é o melhor jeito mais o código abaixo funcionaria.
>
> implode("/",array_reverse(explode("-",$campo[data])));
>
> explicação, se é que precisa:
>
> $data = "2003-02-01";
> $data = explode("-", $data); // agora data é um array $data[0] =
> 2003, $data[1] = 02, $data[2] = 01,
> $data = array_reverse($data); // agora data é um array ao
> contrário: $data[0] = 01, $data[1] = 02, $data[2] = 2003
> $data = implode("/",$data); // agora data é uma string "01/02/2003"
>
> Valeu espero ter ajudado!
>
> Em 23 de fevereiro de 2012 19:25, Norivan Oliveira <nori...@gmail.com>escreveu:
>
>
>
>
>
>
>
>
>
> > Rapaz pelo que vi isso é um relatório né? Porque não faz o correto e usa
> > um gerador de relatório??
>
> > Em 23 de fevereiro de 2012 17:51, Tales Augusto <portaldedes...@gmail.com>escreveu:
>
> > Olá,
>
> >> Talvez isso possa te ajudar
>
> >>http://diegodeveloper.wordpress.com/2011/03/21/gerando-documentos-pdf...
> >> Siga-me: @talesdejesusta...@portaldedesign.com(85) 8748-5097 / 97050186
>
> >>  --
> >> ============================================================
> >> JQUERY MAGAZINE >http://www.jquerymagazine.com.br
> >> --
> >> PHP MAGAZINE >http://www.phpmagazine.com.br
> >> --
> >> LISTA NODE.JS >https://groups.google.com/group/lista-nodejs?hl=pt-br
> >> --
> >> AJAX-BRASIL >http://groups.google.com/group/ajax-brasil
> >> --
> >> PYTHON-GOOGLE >http://groups.google.com.br/group/python-google
> >> --
> >> DOTNET-BRASIL >http://groups.google.com.br/group/dotnet_br
> >> ============================================================
>
> > --
> > *Norivan Oliveira
> > **Data Solution TI - Fabrica de Softwares<http://www.datasolution.srv.br/software/>
> > **Tel's / Phone's: +55 (31) 3318-7252 / **+55 (31) **3273-4534
> > **Web: brservidor.com */* desenvolvimentoemarketing.com.br* *
> > ** "**Não há destino que juntos não possamos fazer.**" *

Daniel_RM

unread,
Feb 24, 2012, 12:36:52 PM2/24/12
to LISTA PHP
Pessoal obrigado pela atenção de vcs.. resolvi isso desse modo:

essa linha estava assim antes antes:
$sql = "select * from vendas_temp order by nome_cliente";

agora para funcionar ficou assim:
$sql = "select *,date_format(`dt_venda`,'%d-%m-%Y') as
`data_formatada` from vendas_temp order by nome_cliente";



e nas celulas de criação do pdf, ficou assim:

essa linha estava assim antes:
$pdf->Cell(35, 5, $rs->dt_venda, 1, 0);

agora para funcionar ficou assim:
$pdf->Cell(35, 5, $rs->data_formatada, 1, 0);


Pode ser que alguem preciso disso futuramente..fica ae a dica.

Abraço.
Reply all
Reply to author
Forward
0 new messages