Я не в полной мере понять функции времени PHP, но я под впечатлением моя функция должна работать:PHP Проверяется пользователь онлайн
function user_status($timestamp){
$online = date('Y-m-d H:i:s', strtotime('-5 minutes', strtotime(date('Y-m-d H:i:s'))));
$away = date('Y-m-d H:i:s', strtotime('-15 minutes', strtotime(date('Y-m-d H:i:s'))));
$offline = date('Y-m-d H:i:s', strtotime('-30 minutes', strtotime(date('Y-m-d H:i:s'))));
if(strtotime($timestamp) >= $online){
return 'online';
} else if(strtotime($timestamp) >= $away){
return 'away';
} else {
return 'offline';
}
}
Он всегда возвращается в Интернете, когда я передаю метку когда последний актив был активен. В чем проблема? Могу ли я просто форматировать неверные данные о статусе?
вы действуете в основном грузопассажирские культовое программирование. 'date()' принимает временную метку и форматирует ее для строки. 'strtotime()' принимает строку и превращает ее в atimestamp. поэтому 'strtotime (date ('...'))' в основном просто массово неэффективное 'time()'. –
Подсказка. Посмотрите, что такое '$ online'. – Anonymous