ユーザーが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;
diff()は> =PHP5.3でサポートされています。それ以外の場合は、次のことができます。
$difference = time() - $user_time;
$secs=time()-strtotime($timestamp);
更新されるまでの秒数をuに指定すると、この秒を次のような必要な時間形式に変換できます。
echo $secs/60." minutes ago";
なぜmysqlでそれをしないのですか?
select TIMEDIFF(NOW(),db_timestamp) as time_past