Мой php или Mysqli время / метки времени показываются вне?

Код

$la=time()-$row['laston'];
$unit="secs";
if($la >= 60)
{
$la=(int) ($la/60);
$unit="mins";
}
if($la >= 60)
{
$la=(int) ($la/60);
$unit="hours";
if($la >= 24)
{
$la=(int) ($la/24);
$unit="days";
}
print "<li><a class=\"button\" href=\"user.php?p={$row['uid']]'}\">{$row['display_name']} ~($la $unit)</a></li>";

а также $row['laston']; хранится как: 1392490566

Моя проблема в том, что он показывает как:

User1 ~ (-58secs) когда я обновляю страницу, я ожидаю, что она будет 0-2 секунды, а не отрицательное значение?

Может кто-нибудь, пожалуйста, помогите мне понять, что вызывает это?

и будет меняться $la=time()-$row['laston']; в $la=time()-$row['laston']+58; быть подходящим решением?

1 ответ

Решение

Попробуй это:

$la = time() - $row['laston'];

if($la > 0) {
    $newLa = $la / 24;
    $unit = "days";
} if($la < 84600) {
    $newLa = $la / 60;
    $unit = "hours";
} if($la < 3600) {
    $newLa = $la / 60;
    $unit = "mins";
} if($la < 60) {
    $newLa = $la;
    $unit = "secs";
} 

echo round($newLa, 2) . ' ' . $unit;
Другие вопросы по тегам