PHP:几分钟前,几秒钟前:这是正确编码的吗?

Kar*_*rem 2 php

if($timestamp > time() - 60){
    // Count seconds ago
    $deff = time() - $timestamp;
    $seconds = $deff / 60;
    echo intval($seconds)." seconds ago";
} elseif($timestamp > time() - 3600){
    // Count minutes ago
    $deff = time() - $timestamp;
    $minuts = $deff / 60;
    echo intval($minuts)." minutes ago";
}
Run Code Online (Sandbox Code Playgroud)

我认为分钟前是对的,但不是秒?我应该怎么做"秒前"吧?

sig*_*ine 6

我使用类似于此的小功能,可能不是最好的,不会处理未来的时间,但如果您想要的只是过去,那就没关系.

function ago($when) {
        $diff = date("U") - $when;

        // Days
        $day = floor($diff / 86400);
        $diff = $diff - ($day * 86400);

        // Hours
        $hrs = floor($diff / 3600);
        $diff = $diff - ($hrs * 3600);

        // Mins
        $min = floor($diff / 60);
        $diff = $diff - ($min * 60);

        // Secs
        $sec = $diff;

        // Return how long ago this was. eg: 3d 17h 4m 18s ago
        // Skips left fields if they aren't necessary, eg. 16h 0m 27s ago / 10m 7s ago
        $str = sprintf("%s%s%s%s",
                $day != 0 ? $day."d " : "",
                ($day != 0 || $hrs != 0) ? $hrs."h " : "",
                ($day != 0 || $hrs != 0 || $min != 0) ? $min."m " : "",
                $sec."s ago"
        );

        return $str;
}
Run Code Online (Sandbox Code Playgroud)

将一个unix时间戳传递给它(你过去的时间),它会说多久以前它.如果您希望返回值略有不同,或者可能希望在其中添加数月或数年,则可轻松修改.