Jag fick lite inspiration från den här tråden och la till funktionen till mitt bildgalleri. Med lite hjälp från Google, hittade jag den här webbsidan som berättar hur man plockar ut mellanskillnaden mellan 2 datum med klockslag.
Jag har en kolumn som heter date_lastactive (DATETIME som datatyp) i databasen, vars data uppdateras för var gång en person uppdaterar sidan de är på. Sedan plockar jag ut det senaste datumet som finns för den kolumnen och jämför ens IP-adress, så att den inte visar sin egna senaste besök. Den skulle i sådana fall bara visa "0 minuter sedan". Nedan hittar du min lösning på det hela. Jag hoppas att detta hjälper dig på traven
define('IPADDRESS', hash('MD5', $_SERVER['REMOTE_ADDR']));
# DATABAS: visitors
$get_lastactive = $sql->query("SELECT * FROM visitors
WHERE ipaddress != '".IPADDRESS."'
ORDER BY date_lastactive DESC
LIMIT 1
");
$lastactive = $get_lastactive->fetch(PDO::FETCH_ASSOC);
# FUNKTION: Räkna ut skillnaden mellan 2 datum
function get_time_difference($start, $end) {
$uts['start'] = strtotime($start);
$uts['end'] = strtotime($end);
if($uts['start'] !== -1 AND $uts['end'] !== -1) {
if($uts['end'] >= $uts['start']) {
$diff = $uts['end'] - $uts['start'];
if($days = intval((floor($diff / 86400)))) $diff = $diff % 86400;
if($hours = intval((floor($diff / 3600)))) $diff = $diff % 3600;
if($minutes = intval((floor($diff / 60)))) $diff = $diff % 60;
$diff = intval($diff);
return array('days' => $days, 'hours' => $hours, 'minutes' => $minutes, 'seconds' => $diff);
} else {
trigger_error('Slutdatumet och klockslaget är tidigare än startdatumet och klockslaget', E_USER_WARNING);
}
} else {
trigger_error('Ogiltig datum och klockslag detekterades', E_USER_WARNING);
}
return false;
}
$start = $lastactive['date_lastactive'];
$end = date('Y-m-d H:i:s');
if($diff = @get_time_difference($start, $end)) {
echo $diff['days'] != 0 ? ($diff['days'] == 1 ? ' dag, ' : ' dagar, ') : '';
echo $diff['hours'] != 0 ? ($diff['hours'].' '.($diff['hours'] == 1 ? 'timme' : 'timmar').' och ') : '';
echo $diff['minutes'].' '.($diff['minutes'] == 1 ? 'minut' : 'minuter');
echo ' sedan';
} else {
echo '<div class="color-red">';
echo 'Fel';
echo '</div>';
}
Lycka till!