php method to achieve daily points plus one: 1. Add a field logintime in the data table; 2. Use 0 hours, 0 minutes and 0 seconds of the day to compare with the last login time; 3. Pass "if($lastLogintime < $today) {...}" can be used to increase points.
The operating environment of this article: Windows 7 system, PHP version 7.4, Dell G3 computer.
How to achieve points plus one every day in php?
php realizes multiple logins a day and only scores points once:
I have found many cases on the Internet, and they all feel similar. It's still quite tedious, so I tried it myself, how to implement this function
To implement this function, I added a field logintime to the data table, indicating the last login time, and then used Compare 0 hour, 0 minute and 0 second of the day with the last login time. If the last login time is greater than this time point, it means you have already logged in. If the last login time is less than this time point, it means you have logged in first. Log in to increase points
Code:
// 判断是否是一天中第一次登录 // 上一次登陆的时间 $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); }
It should be noted that you also need to modify the login time:
// 更新登录时间和登录ip $updateData = array( 'id' => $userinfo['id'], 'userinfo' => array( 'logintime' => time(), 'loginip' => getIP(), ), ); $user->relation(true)->where(array('id'=>$userinfo['id']))->save($updateData);
Recommended learning: "PHP Video Tutorial"
The above is the detailed content of How to add one point to your points every day in php. For more information, please follow other related articles on the PHP Chinese website!