0

今日私のウェブサイトにアクセスしたユーザーを表示する機能がありました。MYSQL データベースには「lastvisit」というフィールドがあります。

以前は MYSQL タイム スタンプを使用していましたが、サーバー時刻がローカル時刻と異なっていたため、正しく機能しませんでした。

PHP でタイム ゾーンを設定し、日付と時刻をデータベースに VARCHAR として保存することはわかっています。

date_default_timezone_set('UTC');
$visittime = date('jS M Y H:i A');

//Update timestamp to show latest visit
$sql="UPDATE users SET lastvisit='$visittime' where email ='$email' ";


29th Jan 2013 22:29 

今日オンラインになったユーザーと、過去 24 時間以内にオンラインになったユーザーの数を表示する PHP 関数を作成するにはどうすればよいですか。

4

1 に答える 1

0

MySQL個別に数えたいと仮定してそれを行う場合、これでうまくいきますemail。(ユーザーの主キーを使用できる場合は、はるかに優れています。 )

これにより、昨日と今日のオンライン ユーザーの合計数が返されます。

SELECT  DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i')), 
        COUNT(DISTINCT email)
FROM    users
WHERE   DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i')) BETWEEN CURDATE + INTERVAL -1 DAY AND CURDATE()
GROUP   BY DATE(STR_TO_DATE(lastvisit, '%D %b %Y %H:%i'))
于 2013-01-30T11:20:08.910 に答える