<?php

class Data {
    public static function ExibirTempoDecorrido($date)
    {
        if(empty($date))
        {
            return "Informe a data";
        }

        $periodos = array("segundo", "minuto", "hora", "dia", "semana", "mês", "ano", "década");
        $duracao = array("60","60","24","7","4.35","12","10");

        $agora = time();
        $unix_data = strtotime($date);

        if(empty($unix_data))
        {  
            return "Bad date";
        }

        if($agora > $unix_data) 
        {  
            $diferenca     = $agora - $unix_data;
            $tempo         = "atrás";
        } 
        else 
        {
            $diferenca     = $unix_data - $agora;
            $tempo         = "agora";
        }

        for($j = 0; $diferenca >= $duracao[$j] && $j < count($duracao)-1; $j++) 
        {
            $diferenca /= $duracao[$j];
        }

        $diferenca = round($diferenca);

        if($diferenca != 1) 
        {
            if($periodos[$j] == "mês")
            {
                $periodos[$j] = "meses";
            }
            else
            {
                $periodos[$j] .= "s";
            }
        }

        return "$diferenca $periodos[$j] $tempo";
    }
}

echo Data::ExibirTempoDecorrido("2024-02-19");
