本文实例讲述了php基于登陆时间判断实现一天多次登录只积分一次功能。分享给大家供大家参考,具体如下:
在网上找了很多的案例,感觉都差不多,有的还比较的繁琐,就自己尝试了一下,如何实现这个功能
实现这个功能我在数据表里面增加了一个字段logintime,表示最后一次的登录时间,然后使用一天中的零时零分零秒和上一次的登录时间进行比较,如果上一次的登录时间大于了这个时间点表示已经登陆过,如果上一次的登录时间小于了这个时间点,则表示第一次登录,增加积分
上代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// 判断是否是一天中第一次登录 // 上一次登陆的时间 $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 ); } |
需要注意的是还要修改登录时间:
1
2
3
4
5
6
7
8
9
|
// 更新登录时间和登录ip $updateData = array ( 'id' => $userinfo [ 'id' ], 'userinfo' => array ( 'logintime' => time(), 'loginip' => getIP(), ), ); $user ->relation(true)->where( array ( 'id' => $userinfo [ 'id' ]))->save( $updateData ); |
这样就实现了这个功能
希望本文所述对大家PHP程序设计有所帮助。
原文链接:http://blog.csdn.net/hpu_yly_bj/article/details/73611601