1

ユーザーがMySQLデータベースのアカウントを更新してから経過した時間を特定するにはどうすればよいですか?MySQLテーブルに(ユーザーの更新時間を保存するための)タイムスタンプがあるので、PHPを使用して、最後のユーザーの更新から経過した時間をどのように識別できますか?

例として:

ユーザーの最終更新時間:2012-04-08 00:20:00;

現在:2012-04-08 00:40:00;

前回の更新からの経過時間:20(分)←PHPを使用してこれが必要

4

4 に答える 4

3

あなたが上のデータを持っている場合

$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これで、最後の更新から経過した分を取得するために行うことができます。

お役に立てれば ;)

于 2012-04-08T04:18:26.357 に答える
1

擬似コードの場合:

$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;
于 2012-04-08T04:18:22.920 に答える
0
$secs=time()-strtotime($timestamp);

更新されるまでの秒数をuに指定すると、この秒を次のような必要な時間形式に変換できます。 echo $secs/60." minutes ago";

于 2012-04-08T04:17:23.360 に答える
0

なぜmysqlでそれをしないのですか?

select TIMEDIFF(NOW(),db_timestamp) as time_past
于 2012-04-08T04:17:59.367 に答える