2016-10-19 7 views
0

私はチャット/アクティビティシステムに取り組んでいます。私のサイトは現在、ページ、ボタン提出、メッセージがアクティビティと呼ばれるテーブルに追加されて送信されるすべてのアクティビティを記録します。タイムスタンプと日付の形式:12:44:06 (time) 2016-10-19 (date) 5分後にユーザーのアクティビティがないかどうかを確認する必要があります。PHPは時間と日付の5分以上を確認する

したがって、ユーザーがオンラインであるかどうかを判断できます。各アクティビティ行にはu_id (user id) があります。これはPHPベースのものが好きです。私はちょうど基本的なPHP関数が必要です。だから私は$時間$日付を持っており、5つのメヌエットは、あなたが以下のようにMySQLを使用してそれを行うことができ、そのセット$時間$日付値から

+0

mysqlで行う方が良い –

+0

@SureshKamrushiなぜそれを言うのですか?元の質問には、ユーザがmysqlを使用しているという記述はありません。 –

+0

私はそれがPHPベースであることを好むだろう。私はちょうど基本的なPHP関数が必要です。だから私は$ time $ dateを持っていて、5 minuetsが$ time $ dateの値をセットしてから経過したかどうかを調べる。 –

答えて

1

あなたはOOPのPHPを使用している場合は、この方法でそれを行うことができます:

$last = DateTime::createFromFormat('Y-m-d H:i:s', $yourDate.' '.$yourTime); 
$now = new Datetime('now'); 

$minutes = abs($last->getTimestamp() - $now->getTimestamp())/60; 

そして、それが5よりも大きいですかどうかをチェックし、ものを行います。

DateTimeクラスの拡張機能であるCarbonをインストールすることもできます。これにより、PHPで日付を処理するときの作業が楽になります。ここ

チェック:http://carbon.nesbot.com/

その後、あなたはそれをこのように行うことができます:

$then = Carbon::createFromFormat('Y-m-d H:i:s', $yourDate.' '.$yourTime); 

if($then->addMinutes(5)->isPast()) { 
    // stuff 
} 

ウェイクリーナー。

+0

はい。間違いなくカーボンを使用してください。物事はほとんどばかげてシンプルになります。 – Simba

-1

を通過したかどうかを確認するために:

SELECT TIMESTAMPDIFF(MINUTE, datatime_col, now()) 

上記のクエリを使用すると、取得します5分を超えているかどうかを比較することができます。

+0

これはうまくいくかもしれませんが、OPはPHPで解決策を望んでいます。 – Simba

関連する問題