如何确定用户在我的 MySQL 数据库中更新他的帐户后经过的时间?我的 MySQL 表中有一个时间戳(用于存储用户更新时间),那么现在如何使用 PHP 识别上次用户更新所经过的时间?
例如:
用户最后更新时间:2012-04-08 00:20:00;
现在:2012-04-08 00:40:00;
自上次更新以来经过的时间:20(分钟)←我需要使用 PHP
如果你有数据
$last_update_time = '2012-04-08 00:20:00';
$now = time(); //this gets you the seconds since epoch
你可以做
$last_update_since_epoch = strtotime($last_update_time); //this converts the string to the seconds since epoch
aand...现在,因为您对这两个变量都有几秒钟的时间
$seconds_passed = $now - $last_update_since_epoch;
现在,您可以$seconds_passed / 60
获取自上次更新以来经过的分钟数。
希望这可以帮助 ;)
在伪代码中:
$get_user_time = mysql_query("SELECT timestamp FROM table");
$row = mysql_fetch_array($get_user_time);
$user_time = $row['timestamp']; //This is the last update time for the user
$now_unformatted = date('m/d/Y h:i:s a', time());
$now = date("m/d/y g:i A", $now_unformatted); // This is the current time
$difference = $now->diff($user_time); // This is the difference
echo $difference;
>= PHP 5.3 支持diff() 。否则你可以这样做:
$difference = time() - $user_time;
$secs=time()-strtotime($timestamp);
会在更新之前给你秒数,然后你可以将这个秒数转换成你需要的时间格式,比如
echo $secs/60." minutes ago";
为什么不用 mysql 来做:
select TIMEDIFF(NOW(),db_timestamp) as time_past