Eine kleine Funktion zum kontinuierlichen Check-in auf der Website!
Haben Sie bei der Website-Entwicklung jemals erlebt, dass Mitglieder Punkte für aufeinanderfolgende Anmeldungen erhalten? Ich habe beispielsweise eine Regel zum Hinzufügen von Punkten für aufeinanderfolgende Anmeldungen. Es sind einige Punkte zu beachten: (1) Kontinuierliche Check-Ins, die Häufigkeit muss akkumuliert werden, was die Beurteilung zwischen zwei Zeitstempeln beinhaltet (2) Ob es sich in diesem Fall natürlich um eine Anmeldung in diesem Monat handelt , die beiden Zeitstempel Das Urteil ist gelöst, aber Sie sollten auch auf diesen Punkt achten (3) Wenn es kontinuierlich ist, wird es um 1 addiert, andernfalls wird es auf 0 gelöscht, und wenn Sie sich noch nicht angemeldet haben, Es wird ein Anmeldedatensatz erstellt! Unten werde ich einen Code zur Implementierung der Anmeldung veröffentlichen. Jeder ist herzlich willkommen, gemeinsam zu lernen!
Tabellenstruktur:
/**So implementieren Sie kontinuierliche Check-ins*/
öffentliche Funktion signList(){
/**Überprüfen Sie zunächst, ob es diesen Benutzer gibt*/
$m_id = $_GET['m_id'];
$sign = D('Sign')->where(array("m_id"=>$m_id))->limit(0)->find();
/**Wenn ja, beurteilen Sie den Zeitunterschied und berechnen Sie dann die Anzahl der Check-ins.*/
if($sign){
/**Der gestrige Zeitstempel-Zeitbereich*/
$t = time();
$last_start_time = mktime(0,0,0,date("m",$t),date("d",$t)-1,date("Y",$t));
$last_end_time = mktime(23,59,59,date("m",$t),date("d",$t)-1,date("Y",$t));
/**Der heutige Zeitstempel-Zeitbereich*/
// $now_start_time = mktime(0,0,0,date("m",$t),date("d",$t),date("Y",$t));
// $now_end_time = mktime(23,59,59,date("m",$t),date("d",$t),date("Y",$t));
/**Stellen Sie fest, ob die letzte Check-in-Zeit innerhalb des gestrigen Zeitbereichs liegt*/
if($last_start_time<$sign['time']&&$sign['time']<$last_end_time){
$da['time'] = time();
$da['count'] = $sign['count'] 1;
/**Sie können hier auch einige Vorgänge hinzufügen, um zu bestimmen, an wie vielen aufeinanderfolgenden Tagen Sie sich angemeldet haben, und dann Punkte usw. hinzufügen.*/
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}else{
/**Kehren Sie zum eingecheckten Betrieb zurück*/
$da['time'] = time();
$da['count'] = 0;
D('Sign')->where(array("m_id"=>$m_id))->save($da);
}
}else{
$data['m_id'] = $m_id;
$data['time'] = time();
$data['sign'] = 1;
$res = D("Sign")->add($data);
if($res){
/**Kehren Sie bei Erfolg zurück oder führen Sie einige Vorgänge durch, z. B. das Hinzufügen von Punkten*/
}
}
}