Alter im Profil

Hexo
Also mein Problem besteht immer noch. Wäre um jede Hilfe dankbar!

Gruß
[kamui]
Was genau ist nochmal das Problem?

Die Berechnung des Alters oder irgendein Darstellungsfehler?
Hexo
Hatte das Problem hier angesprochen und beschrieben.
Alter im Profil

In dem Geburtstagsmonat wird vor dem eigentlichen Geburtstag das alter falsch berechnet.
[kamui]
Mhm das ist komisch, die Funktionen sind eigentlich exakt die gleichen ...

häng mal bitte deine profile.php und thread.php an
Hexo
Zitat:
Original von [kamui]
Mhm das ist komisch, die Funktionen sind eigentlich exakt die gleichen ...

häng mal bitte deine profile.php und thread.php an


Hatte dazu noch was geschrieben gehabt:
Alter im Profil

Aber ich kann auch gerne nochmal die Daten Anhängen, wenn notwendig. Geht aber erst wenn heute Abend.
Wie gesagt, die Anzeige ist jetzt im Profil sowie im Thread gleich, nur leider wird noch falsch gerechnet.
Ich hatte am 08.02 Geburtstag, aber mir wurde schon vom 01.02 mein Zukünfitges Alter gezeigt.

Gruß
[kamui]
Die Dateien bitte smile
Hexo
Hier bitte schön ;-)
Danke schonmal im vorraus.
[kamui]
Mhm ... ich kann eigentlich keinen Fehler erkennen ><
Hexo
Mhhh. Sehr komisch.
Bei mir wird definitiv falsch gerechnet.
Aber wie gesagt:
Angenommen man hat am 21.03.08 Geburtstag (Geboren 21.03.7cool , wird ab dem 01.03.08 schon angezeigt, das man 30 ist.
carline
Habe jetzt alles eingebaut, aber bei mir werden nur die Klammern angezeigt und sonst nichts. Kann mir jemand weiterhelfen? Habe gesehen, das es das Problem hier schon mal gab.
T3chnoGoGo
So hab den hack in der alten Weise heute eingebaut , Fehler in der Altersangabe aber zum Glück hatte ich noch ne alte profile.php
hab mir daraus die Code gezogen und nun wirds richtig angezeigt


für alle die den Code noch brauchen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
/** Alter im Profil - Powered by Martin-Rehberger **/
function errechnealter($gebdatum, $mode=0) {
  if ($mode==1) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $msek = time() - $geburt;
    $age = explode('.', date('j.n.Y', $msek));
    $age[2] = floor($age[2]-1970);
    $alter = floor($age[0]-2).' Tag'.((floor($age[0]-2)==1) ? ('') : ('e')).', '.floor($age[1]-1).' Monat'.((floor($age[1]-1)==1) ? ('') : ('e')).' und '.$age[2].' Jahr'.(($age[2]==1) ? ('') : ('e'));
  } elseif ($mode==2) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $msek = time() - $geburt;
    $tage = floor($msek/(3600*24));
    $alter = $tage.' Tage';
  } elseif ($mode==3) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $sek = time() - $geburt;
    $alter = $sek.' Sekunden';
  } else {
    $gebdatum = explode('.', $gebdatum);
    $seconds = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $seconds = time()-$seconds;
    $age = date('Y', $seconds)-1970;
    $alter = $age.' Jahre';
  }
  return $alter;
}
if ($birthday != $lang->items['LANG_MEMBERS_PROFILE_NODECLARATION'])
  $alterimprofil = errechnealter($birthday_array[2].'.'.$birthday_array[1].'.'.$birthday_array[0],1);


Gruss GoGo
DrPCox
ich liebe solche kleinen hacks, die einem das leben einfach ein stück einfacher machen. läuft alles wunderbar smile
DirkAdam
Zitat:
Original von T3chnoGoGo
So hab den hack in der alten Weise heute eingebaut , Fehler in der Altersangabe aber zum Glück hatte ich noch ne alte profile.php
hab mir daraus die Code gezogen und nun wirds richtig angezeigt


für alle die den Code noch brauchen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
/** Alter im Profil - Powered by Martin-Rehberger **/
function errechnealter($gebdatum, $mode=0) {
  if ($mode==1) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $msek = time() - $geburt;
    $age = explode('.', date('j.n.Y', $msek));
    $age[2] = floor($age[2]-1970);
    $alter = floor($age[0]-2).' Tag'.((floor($age[0]-2)==1) ? ('') : ('e')).', '.floor($age[1]-1).' Monat'.((floor($age[1]-1)==1) ? ('') : ('e')).' und '.$age[2].' Jahr'.(($age[2]==1) ? ('') : ('e'));
  } elseif ($mode==2) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $msek = time() - $geburt;
    $tage = floor($msek/(3600*24));
    $alter = $tage.' Tage';
  } elseif ($mode==3) {
    $gebdatum = explode('.', $gebdatum);
    $geburt = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $sek = time() - $geburt;
    $alter = $sek.' Sekunden';
  } else {
    $gebdatum = explode('.', $gebdatum);
    $seconds = mktime(0, 0, 0, $gebdatum[1], $gebdatum[0], $gebdatum[2]);
    $seconds = time()-$seconds;
    $age = date('Y', $seconds)-1970;
    $alter = $age.' Jahre';
  }
  return $alter;
}
if ($birthday != $lang->items['LANG_MEMBERS_PROFILE_NODECLARATION'])
  $alterimprofil = errechnealter($birthday_array[2].'.'.$birthday_array[1].'.'.$birthday_array[0],1);


Gruss GoGo


und wie ändere ich es damit nur Jahre da steht? verwirrt

weil bei dem Code hier stimmt das Alter nicht was da steht.. ich hab am 20.01.1987 geburtstag und da steht ich wäre 24 obwohl ich erst 23 bin..

code:
1:
2:
3:
4:
5:
6:
/** Alter im Profil - Powered by Martin-Rehberger **/
function errechnealter($gebd,$gebm,$geby){ 
  return checkdate($gebm,$gebd,$geby) ? (((date("m")-$gebm) < 0) || ((date("d")-$gebd == 0) && (date("d")-$gebd < 0)) ? date("Y")-$geby-1 : date("Y")-$geby): false;
}
if ($birthday != $lang->items['LANG_MEMBERS_PROFILE_NODECLARATION'])
  $alterimprofil = errechnealter($birthday_array[2], $birthday_array[1], $birthday_array[0]);