0

入力するフィールドが2つあります。15分あたりと1時間あたりにページが呼び出される回数です。

次のフィールドはMySqlのDateTimeです:

$lastAccess15m=$row['lastAccess15m'];
$lastAccessHour=$row['lastAccessHour'];

そして、これらのフィールドはintです。

$accessPer15m=$row['accessPer15m'];
$accessPerHour=$row['accessPerHour'];

現在の時刻をと比較したいのですが$lastAccess15、時間距離が15分より大きい場合は、の値$lastAccess15を現在の時刻に設定し、リセット$accessPer15mしない場合は増分します$accessPer15m。同じことが$lastAccessHour$accessPerHourにも当てはまります。その後、これらの値をmysqlデータベースに保存する必要があります。

現在の時刻と$accessPer15mの間のタイムスパンを分/時間で取得するにはどうすればよいですか?

4

2 に答える 2

2

SQLではNOW() as current_timestamp(他の選択と一緒に)SELECTも実行します。

PHPの場合:

if ((strtotime($row['current_timestamp']) - strtotime($row['lastAccess15m'])) > 900) {

 // your code 
}

strtotimeTimeStampを秒に変換すると、時間差を900秒と比較できます。(15分)。

于 2012-06-15T19:55:32.043 に答える
2

PHP time()

Unixエポック(1970年1月1日00:00:00 GMT)からの秒数で測定された現在の時刻を返します。

MySQL日時

DATETIMEタイプは、日付と時刻の両方の部分を含む値に使用されます。MySQLは、DATETIME値を「YYYY-MM-DDHH:MM:SS」形式で取得して表示します。サポートされる範囲は、「1000-01-0100:00:00」から「9999-12-3123:59:59」です。

それらの両方を比較するには、一方を変換する必要があり、それらは比較を実行します。

$phpDateFromMysql = strtotime( $mysqldate );

$mySqlDateFromPHP = date('Y-m-d H:i:s', $phpdate);

最も簡単な方法は、Mysql値をtime()に変換し、比較を実行することです。

この作業例を参照してください!

<?php

// compare if the value from $lastAccess15 is +15min in relation to the current time
$lastAccess15 = '2012-06-01 00:00:00';

$phpDateFromMysql = strtotime( $lastAccess15 );

if ($phpDateFromMysql - $lastAccess15 > 900) {
    $lastAccess15 = date('Y-m-d H:i:s', time());
}

echo $lastAccess15;
?>

注:ステートメント内でif、残りの操作を実行できます。またelse、時間が15分を超えていない場合は、一部の操作を実行する句を追加することもできます(参照する場合の増分など)。


関連する読み物:

PHPstrtotime関数_

PHPの日付関数

PHP elseif /elseif制御構造

于 2012-06-15T20:10:14.933 に答える