Seite 1 von 1
geburtstagsliste
Verfasst: 01.08.2007 14:56
von red-head
moinsen zusammen!
ich hab da mal wieder *schäm* ein kleines problem...
ich versuche krankhaft eine geburtstagsliste zu erstellen, die auf dem birthdaymod basiert.
es soll nichts aufwendiges werden...
nun habe ich das problem, dass die geburtsdaten des birthdaymods nicht einheitlich formatiert in die datenbank übergeben werden...
so wird beispielsweise:
variante a) 1. januar 1970 als 111970 geschrieben und
variante b) 31. dezember 1970 als 31121970.
variante 1 hat also 6 stellen und variante b 8.
ich hab schon versucht das mit
auseinander zu wuseln, aber damit komm ich leider nicht wirklich weiter...
hat einer von euch ne idee?
Verfasst: 01.08.2007 16:40
von gn#36
Geh das mal gedanklich durch ob das überhaupt klappt:
- Wenn die Zahl 6 Stellen hat ist die Vorgehensweise klar
- Wenn die Zahl 8 Stellen hat ebenfalls
- 7 Stellen:
Frage ist: gehört Zahl 2 jetzt zum Monat oder zum Tag:
Beispiel 3111970:
Das kann sein 31.1.1970
oder aber 3.11.1970
-> Keine Eindeutige Darstellung
Es muss also irgendwo eine Formatierungsregel geben nach der das in die DB eingetragen wird, da man das sonst nicht auseinanderhalten könnte. Schau dir mal an wie das in die Datenbank eingetragen wird oder wie es ausgelesen wird (schließlich werden diese Zahlen ja wohl irgendwo verwendet). Nur daraus sind Rückschlüsse möglich wie man das zu interpretieren hat.
Verfasst: 03.09.2007 10:07
von red-head
ich war zu doof...
wenn man den wald vor lauter bäumen nicht sieht...
fakt ist, dass die geburtstage NICHT im im format
01.01.1970 --> 111970 oder
31.12.1970 --> 12121970 geschriben werden, sondern im format
01.01.1970 --> 1011970 bzw.
31.12.1970 -->12311970, also MTTJJJJ bzw. MMTTJJJJ
die daten werden also 7- bzw. 8-stellig eingetragen.
hab das ganze mit ner einfachen if-schleife, zeichen zählen und werte von hinten zerlegen gelöst... es funktioniert wunderbar!
falls jemand interesse dran hat:
Code: Alles auswählen
<?
$geburtstag = strlen($row['user_birthday']);
if ( $geburtstag == '8' )
{
$geburtsmonat = substr($row["user_birthday"] ,-8,2);
$geburtsjahr = substr($row["user_birthday"] ,-4);
$geburtstag = substr($row["user_birthday"] ,-6,2);
}
else
{
$geburtsmonat = '0'.substr($row["user_birthday"] ,-7,1);
$geburtsjahr = substr($row["user_birthday"] ,-4);
$geburtstag = substr($row["user_birthday"] ,-6,2);
}
$user_birthday = $geburtstag.'.'.$geburtsmonat.'.'.$geburtsjahr;
?>
@gn#36: vielen dank für deine hilfe!

Verfasst: 03.09.2007 10:24
von PhilippK
Wieso so kompliziert mit if-Bedingung?
Code: Alles auswählen
$geburtsmonat = substr($row["user_birthday"], -6, -4);
$geburtsjahr = substr($row["user_birthday"], -4);
$geburtstag = substr($row["user_birthday"], 0, -6);
Gruß, Philipp
Verfasst: 03.09.2007 10:53
von red-head
weil mir das als erstes eingefallen ist und es bei ersten versuch gleich funktionierte...
haste ne andere idee?
Verfasst: 03.09.2007 11:04
von gn#36
Hat er doch dargestellt wie das funktionieren kann. Im Prinzip zählt Philipps Beispiel die Ziffern von hinten. Das Funktioniert, da die letzten 4 immer zum Jahr gehören, die beiden davor immer zum Tag und die erste(n) immer zum Monat. Da er von Position 0 bis 6 vor Schluss abfragt können da eine oder zwei Ziffern enthalten sein, je nachdem wie viele es insgesamt gibt.
Verfasst: 03.09.2007 11:06
von red-head
wie war das mit dem wald?
thx!