Blog - Luiz Gustavo Web

Neste espaço me dedico a escrever artigos sobre GNU/Linux e desenvolvimento web.
Sinta-se à vontade.

Explode, Implode e Array Reverse - Trabalhando com Datas

10 de Janeiro de 2011

Na programação, entre outras coisas, temos que prestar muita atenção com a disposição de dados.

Afim de efetuarmos cálculos e comparações entre datas no PHP, temos que inserir a data ao banco de dados no formato padrão:

2011-01-10

Mas mostrar 2011-01-10 para o cliente brasileiro fica feio. Mas não podemos inserir no banco de dados no nosso padrão (10/01/2011), pois perderíamos muitos beneficios de funções do PHP e SQL.

Então hoje vamos aprender a exibir uma data no modo brasileiro puxando do banco de dados uma data no formato padrão. Com isso vamos aprender funções muito legais do PHP que você usará também em outras ocasiões.

A primeira coisa que temos que pensar é em separar as partes da data. Digo dia, mês e ano. Então vamos usar a função explode.

explode($separador, $variavel); // Divide uma string em elementos de uma array

Vamos lá:

$data_bd = '2011-01-10';
$data_brasileira = explode('-', $data_bd);

A variável $data_brasileira se torna em uma array com os seguintes dados:

$data_brasileira[0] = '2011';
$data_brasileira[1] = '01';
$data_brasileira[2] = '10';

Primeira missão cumprida! Mas a ordem está errada. Primeiro queremos o dia, depois o mês e por último o ano. Então vamos aprender outra função, a array_reverse.

array_reverse($array); // Retorna uma array com elementos na ordem inversa

Vamos lá:

$data_bd = '2011-01-10';
$data_brasileira = explode('-', $data_bd);
$data_brasileira = array_reverse($data_brasileira);

Perfeito! Agora olha como está a disposição da array:

$data_brasileira[0] = '10';
$data_brasileira[1] = '01';
$data_brasileira[2] = '2011';

Agora, vamos transformar a array em uma string, com o caractere '/' entre os elementos da array. Isto vamos fazer fácilmente com a função implode.

implode($implementador, $array); // Une os elementos da array em uma string

Vamos lá:

$data_bd = '2011-01-10';
$data_brasileira = explode('-', $data_bd);
$data_brasileira = array_reverse($data_brasileira);
$data_brasileira = implode('/', $data_brasileira);

Pronto! Se exibirmos a variável $data_brasileira, ela retornará: 10/01/2011.

Podemos simplificar as três partes deste jeito:

$data_brasileira = implode('/', array_reverse(explode('-', $data_bd)));

Valeu galera, espero ter-lhes ajudado!

© 2006 - 2017