GELÖST:
@Markus: falls es eine elegantere Möglichkeit gibt, bin ich für jede Hilfe dankbar, bin ein php-Trottel und habe halt so lange gestöpselt bis es funktioniert hat!
An alle die mal ähnliches vorhaben:
1) In einer Mitgliederliste in der das Geburtsdatum in der Form dd.mm.YYYY als Text abgespeichert ist, soll dynamisch das aktuelle Alter in Jahren errechnet und in einem anderen Feld ausgegeben werden. Aufbau in der Ansichtsliste siehe im Anhangbild.
Im Wrap-Code des Altersfeldes folgenden Code hinzufügen:
<?php
// $col3 entspricht der Feldposition des Geburtsdatumsfeldes in der
//CB-Ansichtsliste von oben nach unten gezählt.
//Im angehängten Bild entspricht die ID des Feldes zufällig auch "3"
//man muss aber wirklich runter zählen und darf NICHT die ID verwenden!
$col3 = 'col3'; $datum = $item->$col3;
$akt_jahr = date("Y");
$akt_monat = date("m");
$akt_tag = date("d");
$gebdat = explode(".", $datum);
$geb_jahr = $gebdat[2];
$geb_monat = $gebdat[1];
$geb_tag = $gebdat[0];
$alter = $akt_jahr - $geb_jahr;
$v = $akt_monat - $geb_monat;
$d = $akt_tag - $geb_tag;
if ($v < 0) {
$alter = $alter - 1;
}
if ($v == 0 && $d < 0) {
$alter = $alter - 1;
}
$value = $alter;
?>
Das hat bei mir funktioniert, ich hoffe es gibt hier noch Anregungen wie man es besser und noch eleganter machen kann! (So mit if else etc.) leider blicke ich da noch nicht so richtig bei der Syntax durch und habs halt so umständlich gemacht.
Grüße
Markus