Con esta función podemos convertir fechas de manera más legible mostrando hace cuanto tiempo se creo un registro en al base de datos.
<?php 
function formato_fechas($fecha) {
    if (empty($fecha)) return "No hay fecha";

    $timestamp = strtotime($fecha);
    if (!$timestamp) return "Error en la fecha";

    $ahora = time();
    $diferencia = $ahora - $timestamp;

    $tiempo = $diferencia >= 0 ? "hace" : "en";
    $diferencia = abs($diferencia);

    // Segundos en cada unidad
    $segundos_por = [
        "año" => 31536000,
        "mes" => 2628000,
        "semana" => 604800,
        "día" => 86400,
        "hora" => 3600,
        "minuto" => 60,
        "segundo" => 1
    ];

    foreach ($segundos_por as $unidad => $segundos) {
        if ($diferencia >= $segundos) {
            $valor = floor($diferencia / $segundos);

            // Si supera 11 meses → contar en años
            if ($unidad === "mes" && $valor > 11) {
                $valor = floor($diferencia / $segundos_por["año"]);
                $unidad = "año";
            }

            // Pluralizar correctamente
            $unidad .= ($valor > 1) ? "s" : "";

            return "$tiempo $valor $unidad";
        }
    }

    return "justo ahora";
}

?>

y para mostrarlas solo tenemos que pasarle una fecha timestamp sin formato:
echo formato_fechas('2025-11-02 00:27:33');
esto devuelve hace X tiempo,: segundos, minutos, días, semanas, meses, años.
Editado
1
Puntos
233
Visitas
1
Resp
Por alber hace 1 mes
Admin
Respuesta #1
0
Puntos
Por alber hace 1 mes
Admin
Para comentar Inicia sesión o Regístrate
Phpres 2025@ All rights reserved.
Utilizamos cookies para mejorar la navegación en el sitio. Más información Aceptar