Data e hora por extenso
Bom, procurei no fórum usando vários termos mais não encontrei.
Então é o seguinte, tenho uma função que mostra a data e hora por extenso, isso supondo que o posto tenha sido postado ontem e hoje a várias horas, mas, se o post tiver sido postado a segundos atrás, não mostra "postado segundos atrás".
Alguém pode ajudar?
A função:
function data($data) {
$diaData = date('d', strtotime($data));
$mesData = date('m', strtotime($data));
$anoData = date('Y', strtotime($data));
$horData = date('H', strtotime($data));
$minData = date('i', strtotime($data));
$hor = date('H', mktime(gmdate("H") - 2, 0, 0, 0, 0, 0));
$min = date('i');
$seg = date("s");
$dia = date('d');
$mes = date('m');
$ano = date('Y');
if ("$diaData-$mesData-$anoData" == "$dia-$mes-$ano") {
if ($horData == $hor) {
if ($minData == $min) {
$data_retorno = "segundos atraz";
} elseif ($minData < $min) {
$minutosAtraz = date("i", mktime($hor, $min - $minData, $seg, $mes, $dia, $ano));
$s = ($minutosAtraz > 1) ? "s" : "";
$data_retorno = "ha " . $minutosAtraz . " minuto$s atraz";
} elseif (date('H:i', mktime($hor - $horData, $min - $minData, $seg, $mes, $dia, $ano)) < date('H:i')) {
$horasContadas = date('H', mktime($hor - date('H', strtotime($data)), $min, $seg, $mes, $dia, $ano));
$minutoscontados = date('i', mktime($hor, $min - date('i', strtotime($data)), $seg, $mes, $dia, $ano));
$s = ($horasContadas > 1) ? "s" : "";
$sm = ($minutoscontados > 1) ? "s" : "";
$data_retorno = "ha $horasContadas hora$s e $minutoscontados minuto$sm atraz";
}
} else {
$data_retorno = "hoje as " . $horData . 'h';
}
} elseif ("$mesData-$anoData" == date('m-Y', mktime(0, 0, 0, $mes, $dia, $ano)) && $diaData == date('d', mktime($hor, $min, $seg, $mes, $dia - 1, $ano))) {
$data_retorno = "ontem as " . date("H:i", strtotime($data));
} elseif ("$mesData-$anoData" == date('m-Y', mktime(0, 0, 0, $mes, $dia, $ano)) && $diaData == date('d', mktime($hor, $min, $seg, $mes, $dia - 2, $ano))) {
$data_retorno = "antiontem as " . $horData . 'h';
} elseif ("$mesData-$anoData" == date('m-Y', mktime(0, 0, 0, $mes, $dia, $ano)) && $diaData == date('d', mktime($hor, $min, $seg, $mes, $dia - 3, $ano))) {
$data_retorno = "ha 3 dias as " . $horData . 'h';
} else {
$data_retorno = date($data, strtotime("d-m-Y"));
}
return strtolower($data_retorno);
}Discussão (0)
Carregando comentários...