本記事の例では、1日複数ログインに対して1回だけスコアを付ける機能を実現するため、ログイン時間判定に基づくphpを記述しています。参考のために皆さんと共有してください。詳細は次のとおりです:
インターネットで多くのケースを見つけましたが、どれも似たようなもので、いくつかは非常に面倒だったので、自分で試してみて、この機能を実装する方法を説明します
この関数をデータ A フィールドに実装しました。logintime がテーブルに追加され、最終ログイン時刻が示され、最終ログインの場合はその日の 0:00:00 を使用して最終ログイン時刻と比較されます。時間がこの時点より大きい場合は、すでにログインしていることを意味します。最後のログイン時間がこの時点より短い場合は、初回ログインを意味し、ポイントが増加します
上記のコード:
// 判断是否是一天中第一次登录 // 上一次登陆的时间 $lastLogintime = $userinfo['logintime']; // 一天中的零时零分零秒 $today = strtotime(date('Y-m-d')); if($lastLogintime < $today) { // 一天中第一次登录增加积分(关联更新) // 注意:使用关联更新数据的时候需要传递两次id $data['id'] = $userinfo['id']; $data['userinfo'] = array( 'points' => $userinfo['points'] + C('LOGIN'), ); $user->relation(true)->where(array('id'=>$userinfo['id']))->save($data); }
ログインは時間も変更する必要があります:
// 更新登录时间和登录ip $updateData = array( 'id' => $userinfo['id'], 'userinfo' => array( 'logintime' => time(), 'loginip' => getIP(), ), ); $user->relation(true)->where(array('id'=>$userinfo['id']))->save($updateData);
これはこの機能で実現されています
以上が1日複数回ログインして1回だけポイントを獲得する機能のPHP実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。