2 Funções PHP para formatar data e hora

2 Funções PHP para formatar data e hora

No PHP, temos a função Date para informar data, hora, mês e etc. Entretanto, esta função gera por padrão informações no formato americano, ou em outros formatos diferentes do brasileiro. Em outros casos, temos a data no formato timestamp, vinda do banco de dados, e gostaríamos de formatá-la para algo do tipo: Ontem às 22:00. Veja aqui 2 funções PHP para estes tipos de formatações.

Procedimento: Formatação de data, hora, dia da semana, mês, data completa e data abreviada

Com esta simples procedimento, você poderá inserir mais facilmente o dia atual, dia da semana em português, data completa e etc. Para usar este procedimento, basta fazer o include dele em uma página, e usar diretamente as variáveis definidas por mim.

<?php
function data_info(){
$dia = date("j")-1;
$hora = date("H")-3;
$minuto = date("i");
$segundo = date("s");
 
$semana = array(0 => "Domingo",1 => "Segunda", 2 => "Terça", 3 => "Quarta",  4 => "Quinta", 5 => "Sexta",  6 => "Sábado");
$mes = array(1 => "Janeiro",  2 => "Fevereiro",  3 => "Março", 4 => "Abril", 5 => "Maio", 6 => "Junho", 7 => "Julho", 8 => "Agosto", 9 => "Setembro", 10 => "Outubro",  11 => "Novembro", 12 => "Dezembro");
 
$ano = date("Y");
$data_completa = date("d/m/y");
$hora_completa = $hora.":".$minuto.":".$segundo;
$misc = $semana[date("w")].", ".date("j")." de ".$mes[date("n")]." de ".date("Y");
}
//exemplo de uso do procedimento data_info()
data_info();
echo $misc; // Segunda, 14 de novembro de 2011
echo $hora_completa; //23:54:20
?>

Função: Formatação de Timestamp

Esta função é especialmente útil para quem recebe datas no formato timestamp (MySQL geralmente), e quer formatá-la para o formato brasileiro e etc.

<?php
function data($data,$formato=12){
	$hora = $formato == 12 ? "h" : "H";
	$am_pm = (date("H",strtotime($data)) < 12) ? " AM" : " PM";
	$am_pm = $formato == 24 ? "" : $am_pm;
	if(date('d/m/Y', strtotime($data)) == date('d/m/Y')){
		return "Hoje às ".date("$hora:i",strtotime($data)).$am_pm;
	}
	else if(date('m/Y', strtotime($data)) == date('m/Y') && date("d", strtotime($data)) == date("d")-1){
		return "Ontem às ".date("$hora:i",strtotime($data)).$am_pm;
	}
	else if(date('m/Y', strtotime($data)) == date('m/Y') && date("d", strtotime($data)) == date("d")+1){
		return "Amanha às ".date("$hora:i",strtotime($data)).$am_pm;
	}
	else{ 
		return date("d/m/Y",strtotime($data));
	}
}
//exemplo de uso
echo data("2011-11-10 16:59:00"); // 10/11/2011
echo data("2011-11-14 00:00:01"); // Hoje às 00:00
echo data("2011-11-13 15:00:00",24); // Ontem às 03:00 PM
echo data("2011-11-15 12:20:00"); // Amanha às 12:20
?>;

Caso queira mostrar a data no formato 24 horas, passe o parametro adicional 24. Detalhe importante: O AM/PM só será mostrado quando o formato da data for 24 horas.
Espero que tenham gostado!

Lucas Peperaio

Estudante de Ciência da Computação, trabalho com desenvolvimento web há 5 anos e com hardware há 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, além é claro dos Games. Apaixonado por informática e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas. Siga-me no youtube, posto semanalmente muito material sobre Hardware, tecnologia e games em geral: Clique aqui

Receba gratuitamente em seu E-mail
Novos artigos do meu Blog!


Após o Cadastro você receberá um Email Automático. Clique no link enviado para Ativar e receber as novidades.

Categorias do site





2 Comentários Deixe o seu

  1. Regis Magnus

    Obrigado pela ajuda.

  2. Regis Magnus

    Obrigado pela ajuda