Jetzt kostenlos Anmelden!

Damagedealer Männlich

ist gerade angekommen

Beiträge: 48

Geschlecht: Männlich

PHPKIT Version: 1.6.4

1

Mittwoch, 10. September 2008, 13:37

Datumsberechnung in php

Ich möchte in einem Script überprüfen welcher User meines phpkit 1.6.4 seit mehr als 1 Jahr nicht mehr eingeloggt war.

Ich habe dazu die Variable lastlog aus der Tabelle phpkit_user ausgelsen. Aber mit welcher Funktion kann ich nun prüfen ob das länger her ist als 1 Jahr? Finde leider nix hilfreiches dazu... ?(

mfg,

DD
  • Zum Seitenanfang
  • Zum Seitenende

Headless Männlich

... nur noch zur deko

Beiträge: 2 374

Geschlecht: Männlich

Wohnort: Nürnberg

PHPKIT Version: keine

2

Mittwoch, 10. September 2008, 14:58

Du Rechnest einfach mit dem Timestamp weiter:
60 * 60 * 24 = 86400 [also ein Tag]
86400 * 365 = 31536000 [also ein Jahr]
86400 * 366 = 31622400 [also ein Schaltjahr]

Bspw. so

PHP-Quelltext

1
2
3
4
if(aktuelles-datum-1 jahr >= lastlog )
{
user anschreiben
}
So einfach wie möglich - aber nicht einfacher!
Albert Einstein (1879-1955)
  • Zum Seitenanfang
  • Zum Seitenende

Superkater13439 Männlich

1.6.1 Groupie

Beiträge: 1 361

Geschlecht: Männlich

Wohnort: Berlin

PHPKIT Version: 1.6.1

3

Mittwoch, 10. September 2008, 15:21

Wenn es nur um eine soche Ausgabe geht, wer so und so viele Tage inaktiv war, dann braucht man das Rad nicht neu erfinden.
Müsste aber für V1.6.4 umgeschrieben werden.

Leider gibt es nichts von Ratiopharm, aber
für den Adminbereich:

* Name = InaktivListing
* Version = 1.0
* Since = 04.12.2004
* Copyright = Dooki
* Homepage = http://www.php-gfx.net

oder
Als Link in einer Navbox oder so:

# Inaktive User v1.1
## http://www.bomania.de

Der Zeiraum ist bei beiden Hacks einstellbar.


LG
Kater
  • Zum Seitenanfang
  • Zum Seitenende

Damagedealer Männlich

ist gerade angekommen

Beiträge: 48

Geschlecht: Männlich

PHPKIT Version: 1.6.4

4

Mittwoch, 10. September 2008, 15:28

super, das funktioniert :) :thumbsup:

wenn das mal wer braucht:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
$getuserinfo=$DB->query("SELECT user_nick, user_id, lastlog, user_posts FROM ".$db_tab['user']." WHERE user_activate=1 ".$sqlcommand." ORDER by lastlog ASC "); 
$heute getdate(); 
while ($userinfo=$DB->fetch_array($getuserinfo)) 
{ 
if (($heute[0]-31622400) >= $userinfo['lastlog']) 
{ 
ausgabe 
} 
}


PS: @Superkater sowas in der Art meinte ich, aber ich nutze die Gelegenheit mal um mich selber weiter einzuarbeiten als andere Sachen umzuschreiben...
  • Zum Seitenanfang
  • Zum Seitenende

Riddler Männlich

kennen Einige hier

Beiträge: 307

Geschlecht: Männlich

PHPKIT Version: 1.6.5

5

Mittwoch, 10. September 2008, 16:56

ich würde in dem fall aber eher mit time() arbeiten, als mit getdate()... ist einfacher. ;)

PHP-Quelltext

1
2
3
4
5
6
7
$getuserinfo=$DB->query("SELECT user_nick, user_id, lastlog, user_posts FROM ".$db_tab['user']." WHERE user_activate=1 ".$sqlcommand." ORDER by lastlog ASC ");
//$heute = getdate();
while ($userinfo=$DB->fetch_array($getuserinfo)) {
    if ((time() - 31622400) >= $userinfo['lastlog']) {
        //hier die ausgabe...
    }
}
  • Zum Seitenanfang
  • Zum Seitenende

HiGHteK Männlich

findet sich zurecht

Beiträge: 144

Geschlecht: Männlich

PHPKIT Version: 1.6.03

6

Mittwoch, 10. September 2008, 16:57

Vielleicht noch als kleine Ergänzung bzw. Verbesserungsvorschlag...
Ich würde gleich nur die User auslesen, die min. 1 Jahr nicht aktiv waren, als alle auszulesen und dann rauszufiltern. Das spart Performance, besonders wenn es viele User sind (Bsp: Es sind 1000 User registriert, aber nur 10 inaktiv...dann liest du alle 1000 aus, nur um an die 10 zu kommen ;) )
Mit der folgenden SQL-Abfrage sollte du dabei an alle User kommen, die min. 1 Jahr (nach lastlog) nicht mehr aktiv waren..

MySQL-Abfrage(n)

1
SELECT user_nick, user_id, user_posts FROM prefix_user WHERE user_activate = '1' AND lastlog + (365*24*60*60) <= unix_timestamp()

(getestet unter MySQL 5.0 auf XAMPP)

Grtz
[Bevor du jemanden mit Füßen trittst, überleg ob du einem eventuellen Echo gewachsen bist]
  • Zum Seitenanfang
  • Zum Seitenende

Damagedealer Männlich

ist gerade angekommen

Beiträge: 48

Geschlecht: Männlich

PHPKIT Version: 1.6.4

7

Mittwoch, 10. September 2008, 17:50

super Tip HiGHteK :thumbsup:

funzt Prima damit. Und ich hab wieder was gelernt ^^ 8o
  • Zum Seitenanfang
  • Zum Seitenende