Está código está mal feito?
Olá pessoal, eu desenvolvo em PHP a um tempinho, porém nunca fui de praticar muito e de vez em quando eu crio alguma coisa, porém sempre que eu faço algo eu procuro na internet para verificar se minha aplicação está bem feita. Hoje precisei criar uma função que retorna o tempo em que o usuário fez uma postagem, similar ao facebook, Ex: O arquivo foi postado a 1h ou a 23 minutos. O negócio é que eu vi algumas funções que fazem algo parecido só que com um código bem feito.
Olhem a função que eu fiz:
function calcular_tempo_postagem($dataPublicacao){
#Ler data e hora atual. Data em formato (AAAA-MM-DD) e hora em (HH-MM-SS)
$dataAtual = date("Y-m-d");
$horaAtual = date("H:i:s");
#Criar data e hora para comparação: DATA ATUAL
$exDATA_A = explode("-", $dataAtual);
$exHORA_A = explode(":", $horaAtual);
#Separar data da hora, da publicacao
$exDATAPUB = explode(" ", $dataPublicacao);
#Criar data e hora para comparação: DATA DA PUBLICAÇÃO
$exDATA_P = explode("-", $exDATAPUB[0]);
$exHORA_P = explode(":", $exDATAPUB[1]);
if($exDATA_A[0]>$exDATA_P[0]){
$subAnos = $exDATA_A[0]-$exDATA_P[0];
return "Há ".$subAnos." anos";
}
else if($exDATA_A[1]>$exDATA_P[1]){
$subMeses = $exDATA_A[1]-$exDATA_P[1];
return "Há ".$subMeses." meses";
}
else if($exDATA_A[2]>$exDATA_P[2]){
$subDias = $exDATA_A[2]-$exDATA_P[2];
return "Há ".$subDias. " dias";
}
else if($exHORA_A[0]>$exHORA_P[0]){
$subHoras = $exHORA_A[0]-$exHORA_P[0];
return "Há ".$subHoras." horas";
}
else if($exHORA_A[1]>$exHORA_P[1]){
$subMinutos = $exHORA_A[1]-$exHORA_P[1];
return "Há ".$subMinutos." minutos";
}
else{
$subSegundos = $exHORA_A[2]-$exHORA_P[2];
return "Há ".$subSegundos." segundos";
}
}
Eu sei que existe várias formas de fazer isso, entretanto eu fico meio bolado porque eu não consegui pensar em algo mais robusto e talvez mais leve. O que acham?
Discussão (15)
Carregando comentários...