TOPIC:

Alter aus Geburtsdatum berechnen 9 years 8 months ago #67627

  • Topic Author
  • Max4joomla
  • Visitor
  • Visitor
Hallo,

in Contentbuilder möchte ich das Alter aus dem Geburtstag automatisch als Item-Wrap berechnen lassen. Das Geburtsdatum ist ein String in der Form YYYY-MM-DD. Ich versuchte folgenden Code:
<?php

$col3 = 'col3'; $datum = $item->$col3;

    function get_alter($datum) {

    $akt_jahr = date(“Y”);
    $akt_monat = date(“m”);
    $akt_tag = date(“d”);

    $gebdat = explode(“-”, $datum);

    $geb_jahr = $gebdat[0];
    $geb_monat = $gebdat[1];
    $geb_tag = $gebdat[2];

    $alter = $akt_jahr – $geb_jahr;
    $v = $akt_monat – $geb_monat;

    // Geb-Monat in der Zukunft
    if ($v < 0) {
    $alter = $alter – 1;

    // aktuelles Monat ist Geb-Monat
    } elseif ($v == 0) {
    $d = $akt_tag – $geb_tag;
    if ($d < 0) { $alter = $alter – 1; }
    }

    // Rückgabe des Alters
    $value = $alter;
    }
?>

Funktioniert natürlich nicht, wäre auch zu schön gewesen! Kann mir jemand damit helfen? (Bin in php total neu und helfe mir mit Codeschnipseln aus diversen Foren ab, bitte keine oder nur sehr wenige Vorkenntnisse voaraussetzten!)

Vielen Dank
Markus

Please Log in or Create an account to join the conversation.

Re: Alter aus Geburtsdatum berechnen 9 years 8 months ago #67744

  • TheMuffinMan's Avatar
  • TheMuffinMan
  • Offline
  • Developer
  • Developer
  • Posts: 10064
  • Karma: 167
  • Thanks: 808
Hi,

wie schaut's denn hiermit aus (sollte in den code für die spalte "geburtsdatum" angelegt werden)?
<?php
$datum = $value;

    $akt_jahr = date(“Y”);
    $akt_monat = date(“m”);
    $akt_tag = date(“d”);

    $gebdat = explode(“-”, $datum);

    $geb_jahr = $gebdat[0];
    $geb_monat = $gebdat[1];
    $geb_tag = $gebdat[2];

    $alter = $akt_jahr – $geb_jahr;
    $v = $akt_monat – $geb_monat;

    // Geb-Monat in der Zukunft
    if ($v < 0) {
    $alter = $alter – 1;

    // aktuelles Monat ist Geb-Monat
    } elseif ($v == 0) {
    $d = $akt_tag – $geb_tag;
    if ($d < 0) { $alter = $alter – 1; }
    }

    // Rückgabe des Alters
    $value = $alter;
    
?>

Please Log in or Create an account to join the conversation.

Aw: Re: Alter aus Geburtsdatum berechnen 9 years 8 months ago #67761

  • Topic Author
  • Max4joomla
  • Visitor
  • Visitor
Hallo Markus,

verstehe leider nicht ganz . Ich dachte der Code muß in das "Wrapcode" Feld beim Feld "Alter" rein, damit im Listview dann das Alter bei jedem Aufruf der Liste aktuell berechnet wird?! (Siehe Bild im Anhang) Ich habs bei beiden Feldern probiert - geht leider nicht. Gibts irgendwo ein Tut wie genau die Werte gespeichert werden und wie man darauf zugreifen kann?

Grüße
Markus
Attachments:

Please Log in or Create an account to join the conversation.

Re: Aw: Re: Alter aus Geburtsdatum berechnen 9 years 8 months ago #67936

  • TheMuffinMan's Avatar
  • TheMuffinMan
  • Offline
  • Developer
  • Developer
  • Posts: 10064
  • Karma: 167
  • Thanks: 808
jap, genau, das muss so da rein, allerdings momentan noch in eine zeile, konnte bei der Entwicklung noch nicht absehen, dass derart regen Gebrauch davon gemacht wird. In den nächsten Versionen wird es ein Mehrzeiliges Feld.

Please Log in or Create an account to join the conversation.

Aw: Re: Aw: Re: Alter aus Geburtsdatum berechnen 9 years 8 months ago #68003

  • Topic Author
  • Max4joomla
  • Visitor
  • Visitor
Hallo Markus,

also da rührt sich leider gar nichts. Wenn ich diesen Code in des Wrap.Feld eintrage, erscheint in der Listview nicht mal ein Fehler. sondern gar nichts. Werde diese Aufgabenstellung nicht lösen können :(

Please Log in or Create an account to join the conversation.

Aw: Alter aus Geburtsdatum berechnen 9 years 8 months ago #68012

  • Topic Author
  • Max4joomla
  • Visitor
  • Visitor
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
Attachments:

Please Log in or Create an account to join the conversation.

  • Page:
  • 1
Time to create page: 0.050 seconds

BreezingForms Pro 1.4.7 for WordPress Released!

Available in the membership section.

September Discount!

Massive discounts on all subscriptions!

Get Your Subscription Here

Quick Links

Downloads

BreezingForms

ContentBuilder

BreezingCommerce

Templates

Documentation

BreezingForms

ContentBuilder

BreezingCommerce

Apprendre BreezingForms (French Community)

Apprendre et maîtriser BreezingForms par des tutoriels et exemples, le tout en français

breezingforms.eddy-vh.com

Questions et réponses sur les forums de l'AFUJ

AFUJ

Special Offer

Summer Sale! All subscriptions at a special price!

Includes prio support, all of our current and future Joomla!® extensions and Joomla!® templates for the duration of your membership.

Get it from here

3rd Party Discount - 25% Off

We help you to keep your costs under control. If you are a new member and purchased a form building tool from a different form vendor, then you'll get a 25% discount on our subscription plans.

How to receive the discount:

Send us a quick email to sales@crosstec.org with a proof of purchase (for example a paypal receipt), await payment instructions and enjoy your membership!