Heim  >  Artikel  >  Backend-Entwicklung  >  Verwenden Sie PHP, um festzustellen, ob sich der Benutzer an diesem Tag zum ersten Mal angemeldet hat

Verwenden Sie PHP, um festzustellen, ob sich der Benutzer an diesem Tag zum ersten Mal angemeldet hat

PHP中文网
PHP中文网Original
2017-03-23 13:48:513024Durchsuche

Vorwort

Ich habe vor einiger Zeit an einem Projekt gearbeitet und wurde jedes Mal gebeten, automatisch Punkte zu vergeben, wenn ich mich zum ersten Mal anmelde Tag.
Das Anmelden hat mir keine Punkte eingebracht, ich war ein paar Sekunden lang deprimiert.
Nachdem ich eine Weile erfolglos auf Baidu gesucht hatte, kam ich nach langem Überlegen endlich auf diese Methode.
Mit anderen Worten: Punkte werden nur im Stillen vergeben, wenn sie die Punkte überprüfen, sonst wüssten sie es nicht.

Verwirrend

Da Sie sich jedes Mal anmelden müssen, wenn Sie auf die APP-Benutzeroberfläche klicken, ist dies einfach zu handhaben. Ich muss nur beurteilen, ob Sie sich jeden Tag zum ersten Mal anmelden, wenn Sie sich anmelden.
Aber manche Dinge sind leichter gesagt als getan. Wie können wir das erkennen?
Durch die Abfrage der

users

-Datenbank habe ich stillschweigend erfahren, dass es in der Datenbank ein Feld

last_login

gibt. Aufgezeichnet wird der Greenwich Mean Time-Zeitstempel der Anmeldezeit jedes Benutzers.

Greenwich Mean Time

Greenwich Mean Time (alte Übersetzung Greenwich Mean Time oder Greenwich Mean Time; Englisch: Greenwich Bedeuten Die Zeit (GMT) bezieht sich auf die Standardzeit am Royal Greenwich Observatory in einem Vorort von London, England, da der Nullmeridian auf dem dort verlaufenden Längengrad definiert ist. Seit dem 5. Februar 1924 sendet das Greenwich Observatory stündlich Informationen zur Zeitanpassung in die Welt.

Zeitstempel

Zeitstempel (Zeitstempel), normalerweise eine Folge von Zeichen, identifiziert eindeutig einen bestimmten Zeitpunkt in der Zeit. Die digitale Zeitstempeltechnologie ist eine Variante der digitalen Signaturtechnologie.
Solange Sie sich anmelden, fragen Sie zuerst den letzten Zeitstempel ab (die Daten wurden zu diesem Zeitpunkt nicht geändert) und zeichnen Sie ihn auf. Ändern Sie dann den Zeitstempel auf den neuesten Stand, zeichnen Sie ihn auf und vergleichen Sie die beiden Zeitstempel. Hier verwenden wir die Funktion

getdate()


getdate()

getdate() Funktion zum Abrufen von Datums-/Uhrzeitinformationen.

Verwenden Sie PHP, um festzustellen, ob sich der Benutzer an diesem Tag zum ersten Mal angemeldet hat

Implementierung

Nachdem ich so viel gesagt habe, werde ich den Code unten veröffentlichen.
Dieser Code wird in die Anmeldefunktion eingefügt.
Vorausgesetzt, dass $user_id ermittelt wurde, können Sie die folgende Methode verwenden, um

/*查询到上一次登陆的last_login*/
    $sql = "SELECT last_login FROM users
            WHERE user_id = '$user_id'";

    /*获取上一次登录的格林威治时间的时间戳*/
    $last_login_old = $GLOBALS['db']->getOne($sql);

    /*获得上一次登陆日期*/
    $last_login_date_old = getdate($last_login_old);

    /*更新用户最后一次登陆时间last_login*/    
    $sql = "UPDATE users SET last_login = '" .gmtime(). "'
            WHERE user_id = '$user_id'";

    /*执行UPDATE*/
    $GLOBALS['db']->query($sql);

    /*查询到最新的登陆的格林威治时间的时间戳*/
    $last_login_new = gmtime();

    /*获得最新日期*/
    $last_login_date_new = getdate($last_login_new);

    /*进行比较,yday是一年的第几天*/
    /*若出现不等于的情况,就说明是当天第一次登陆*/
    if($last_login_date_old['year'] != $last_login_date_new['year'] ||
            $last_login_date_old['yday'] != $last_login_date_new['yday'])
    {
        /*判断成功,doSomething*/
    }

Sie benötigen diese Funktion auch zur Unterstützung von

 /**
     * 获得当前格林威治时间的时间戳
     * @return  integer
     */
    function gmtime()
    {
        return (time() - date('Z'));
    }

Verwandte Artikel:

Wie kann festgestellt werden, ob ein Benutzer eine Seite zum ersten Mal betritt?

So verwenden Sie PHP, um festzustellen, ob der Benutzer von einem Mobiltelefon aus zugreift

Verwenden Sie PHP, um festzustellen, ob der Benutzer der Website folgt Öffentliches WeChat-Konto

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn