Inverter Datas
Inverter Datas
mai 18A função que estou criando hoje será para inverter uma variável. Como exemplo irei trabalhar com as data geradas no Banco de Dados.
Nos SGBDs (Softwares Gerenciadores de Banco de Dados) o padrão para os atributos que necessitam do dominio do tipo DATE é o YYYY-MM-DD(Ano – Mês – Dia).
Quando inserimos, alteramos ou selecionamos algum tipo de dado, precisamos passar a data no formato americano citada acima.
Uma forma que utilizo para isso é usando 3 funções do PHP:
Vamos ao exemplo:
// Data no banco de dados = 2011-05-18
// O sistema irá mostrar 18/05/2011
// Forma simplificada
$data = '2011-05-18';
$nova_data = join('/', array_reverse(explode('-', $data)));
echo $nova_data;
// Forma extensa
$data = '2011-05-18';
$data_explode = explode('-', $data);
$data_reverse = array_reverse($data_explode);
$nova_data = join('/'. $data_reverse);
echo $nova_data
Nos 2 exemplos acima o retorno da variavel $nova_data será 18/05/2011
Abaixo explicação de cada uma das funções utilizadas:
Explode
Divide uma string em strings. O retorno será um array de strings de acordo com o caracter passado no primeiro parâmetro.
Exemplo:
$string = 'Testando a função explode';
$array = explode(' ', $string);
print_r($array);
O retorno acima será gerado o seguinte array:
Array
(
[0] => Testando
[1] => a
[2] => função
[3] => explode
)
Para imprimir um determinado valor do array, devemos informar o seu índice:
echo $array[0];
Será Impresso: “Testando”.
Array Reverse
Retorna um array com os elementos na ordem inversa. A função um array como parâmetro e retorna um novo array invertido.
Exemplo:
$array = array('Testando','inverso');
$novo_array = array_reverse($array);
print_r($novo_array);
print_r($novo_array);
O retorno acima será gerado o seguinte array:
Array
(
[0] => Testando
[1] => inverso
),
Array
(
[0] => inverso
[1] => Testando
)
Join
A função join() é um sinônimo da função implode(), no qual junta os elementos de um array em uma string.
$array = array('nome', 'telefone', 'email');
$string = join(',', $array);
echo $string ;
O exemplo acima será impresso: nome,telefone,email

Dae Jardel, blz?
Parabens pelo Blog, e pelo post, muito util isso, mas acabei ficando com uma dúvida.
Não seria melhor tratar a data diretamente na saída do SGBD com a função DATE_FORMAT inserida no select?
jardelbazi
Posted on 20 de maio de 2011 (Edit)
Grande Leonardo,
Obrigado pela visita e pelo comentário. =)
Quanto ao seu questionamento. Você está certo em formatar a data direto no SELECT.
Mas o tuto acima eu me referia em Selecionar, Editar e Cadastrar datas.
Com isso prefiro tratar todos os dados no PHP antes de enviar para o Banco de Dados.