I want to get the amount of time since a user logged in.
php:
$sql = "SELECT * FROM login WHERE username = '$user'" ;
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_assoc($result);
$lastOnline = $row["lastOnline"];
if ($lastOnline >= $time-60 or $lastOnline == $time){
$lastOnline = "Now";
} else if ($lastOnline >= $time-3600){
$lastOnline = date('i', $lastOnline-$time)." minutes ago";
} else if ($lastOnline >= $time-86400){
$lastOnline = date('G', $lastOnline-$time)." hours ago";
} else if ($lastOnline >= $time-604800){
$lastOnline = date('j', $lastOnline-$time)." days ago";
}
The hours seem to work but not the minutes. It seems to show the opposite.
Your calculation is invalid, at least for the minutes case.
$lastOnline = date('i', $lastOnline-$time)." minutes ago";
^^^^^^^^^^^^^^^^^
That will always return a Negative timestamp value because lastOnline is in the past and time is the current time()
. It should be otherwise
$lastOnline = date('i', $time-$lastOnline)." minutes ago";
^^^^^^^^^^^^^^^^^
Example
$lastOnline=time()-600;
$time=time();
$lastOnline = date('i', $time-$lastOnline)." minutes ago";
echo $lastOnline;
Output
10 minutes ago
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments