php 代码:
public function sign(){ $current=date('Y-m-d H:i:s',time());//当前时间 $hasSign=M('sign')->where("uid={$this->uid}")->find();//当前会员的签到表 $count=$hasSign['si_count'];//签到次数 if($hasSign){ $lastSignDay=strtotime("{$hasSign['si_time']}");//si_time 签到时间 $lastSign=date('Y-m-d',$lastSignDay);//上次签到时间 $today=date('Y-m-d',time()); if($lastSign==$today){ echo "今天已签到,您已连续签到 <font color='green'> {$count} </font> 天,连续签到7天+10分!"; exit(); } $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间 (签到当天剩余的小时+1天的时间) $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00 $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间 if(time()>$lastSignDate){ //当前时间 > 上一次签到时间 $count=1; }else{ $count=$count+1; } $sign=M('sign')->where("uid={$this->uid}")->save(array('si_time'=>date('Y-m-d H:i:s'),'si_count'=>$count)); //签到表 }else{ $sign=M('sign')->add(array('uid'=>$this->uid,'si_count'=>1)); //签到表 } if($sign=M('sign')->where("uid={$this->uid}")->find()){ if($sign['si_count']!=0 && !empty($sign['si_count'] )){ if($sign['si_count']%7==0){ $active_integral=10; $integral_info='连续签到7天,增送10积分'; }else{ $active_integral=1; $integral_info='签到+1分'; } $x = memberIntegralLog($this->uid,4,$active_integral,$integral_info); dump($x); } if($count>0){ echo "<font color='green'>签到成功,您已连续签到 <font color='red'> {$sign['si_count']} </font> 天,连续签到7天+10分!</font>"; }else{ echo "<font color='green'>签到成功</font>"; } }else{ echo '签到失败,请稍后重试!'; } }
html 代码:
<a href='javascript:;' class='sign_in' title='签到'>签到拿积分!</a>
js 代码:
<script type="text/javascript"> $(function(){ $('.sign_in').click(function() { //alert('__URL__/sign/tag/in'); $.ajax({ url : '__URL__/sign', dataType : 'text', success : function(res) { if (res.match(/green/)) { location.reload(); $('.sign_in').text('已签到 +1分'); } alert(res); } }); }); }); </script>