我有一段时间以前在php中的功能,如果用户在线或上次看到用户,我会用它返回。
function tj_online_last($ptime) {
$estimate_time = time() - strtotime($ptime);
// if time diff is less than 1 minute then user is online
if ($estimate_time < 60) {
return 'online';
}
$condition = array(
12 * 30 * 24 * 60 * 60 => 'year',
30 * 24 * 60 * 60 => 'month',
24 * 60 * 60 => 'day',
60 * 60 => 'hour',
60 => 'minute',
1 => 'second',
);
foreach($condition as $secs => $str) {
$d = $estimate_time / $secs;
if ($d >= 1) {
$r = round($d);
return $r.' '.$str.($r > 1 ? 's' : '').' ago';
}
}
}
现在问题是,当用户第一次没有登录他的帐户时,时间值为“空”&#39;我想回来“永远不会”。而不是令人烦恼的48年前&#39;因为我无法处理错误。
答案 0 :(得分:0)
试试这个......
当用户第一次登录时,它的最后一个条目为空,因此您需要检查条件if
上次日期为空then
return 'never';
function tj_online_last($ptime) {
if(strtotime($ptime) <= 0){
return 'never';
}
$estimate_time = time() - strtotime($ptime);
// if time diff is less than 1 minute then user is online
if ($estimate_time < 60) {
return 'online';
}
$condition = array(
12 * 30 * 24 * 60 * 60 => 'year',
30 * 24 * 60 * 60 => 'month',
24 * 60 * 60 => 'day',
60 * 60 => 'hour',
60 => 'minute',
1 => 'second',
);
foreach($condition as $secs => $str) {
$d = $estimate_time / $secs;
if ($d >= 1) {
$r = round($d);
return $r.' '.$str.($r > 1 ? 's' : '').' ago';
}
}
}