如何将秒数计入分钟,php?

时间:2011-08-28 10:35:15

标签: php time

  

可能重复:
  Output is in seconds. convert to hh:mm:ss format in php
  How can i display seconds ago/minutes ago/with unix timestamp?

我正在使用这个用户在线脚本。到目前为止,它如下......

while ($online_user = $q -> fetch(PDO::FETCH_ASSOC)) {

$last_active = time() - $online_user['online'];
echo '<p>' . $online_user['username'] . ' was last active ' . $last_active . ' seconds
    ago.</p>';

}

$ online_user ['online']是用户在网站上活动的最后一次()。因此,当我从当前时间()中减去它时,它会给出我们最后一次活动的秒数。

事情就是这样的回声:

Some username was last active 567 seconds ago.

我想知道如何让它回声,所以它会将它转换为分钟和秒钟,所以它看起来像这样;

Some username was last active 9 minutes and 27 seconds ago.

如果您知道我能学到的任何地方,请提前致谢,请发布链接。 :)

6 个答案:

答案 0 :(得分:6)

您可以除以60来获得分钟数。除法余数是不是一分钟的秒数。

$minutes = floor($last_active / 60);
$seconds = $last_active % 60;
echo 'Some username was last active ';

if ($minutes > 0) {
    echo "$minutes minutes ";
}

if ($seconds > 0) {
    if ($minutes > 0) {
        echo "and ";
    }
    echo "$seconds seconds ";
}
echo "ago.";

这会将其分解为分钟和秒,如果其中任何一个为零,则不会输出分钟或秒数(即没有“0分30秒前”。注意是否要添加小时数(X小时) ,Y分钟,Z秒),你可以采取相同的方法,再分为60(每小时60分钟,每分钟60秒)。要获得'天',你将除以24(每天24小时)。

答案 1 :(得分:5)

function sec_to_time($seconds) {
  $hours = floor($seconds / 3600);
  $minutes = floor($seconds % 3600 / 60);
  $seconds = $seconds % 60;

  return sprintf("%d:%02d:%02d", $hours, $minutes, $seconds);
} 

答案 2 :(得分:2)

基本过程与您使用的语言相同:

mins = floor (secs / 60);
secs = secs mod 60;

hour = floor (mins / 60);
mins = mins mod 60;

答案 3 :(得分:0)

$sec = $last_active  % 60;
$min = ($last_active - $sec) / 60;

答案 4 :(得分:0)

你可以将分数除以60,使用模数得秒:

$minutes = $last_active / 60;
$seconds = $last_actives % 60;

答案 5 :(得分:0)

$minutes = $last_active / 60;
$seconds = $last_active % 60;
echo '<p>' . $online_user['username'].' was last active '.$minutes.' minutes and '.$seconds.' seconds ago.</p>';

你可以添加额外的if,检查分钟是否为0,不显示“分钟和”部分。