Hypo: Alter ausgeben

Hallo.... ich habe eine variable wo man sein geburtsdatum angeben kann. jetzt möchte ich über ein java script das alter berechnen. das gebursdatum wird so ausgebeben: tag.monat.jahr

  1. Hi,

    Hallo.... ich habe eine variable wo man sein geburtsdatum angeben kann. jetzt möchte ich über ein java script das alter berechnen. das gebursdatum wird so ausgebeben: tag.monat.jahr

    das ist ein sehr schönes Vorhaben, bei dem ich Dir viel Erfolg wünsche. Wenn es irgend ein Problem gibt, welches Du alleine mit Hilfe einschlägiger Quellen wie SelfHTML und Google nicht lösen kannst, so zögere nicht zu fragen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. das ist ein sehr schönes Vorhaben, bei dem ich Dir viel Erfolg wünsche. Wenn es irgend ein Problem gibt, welches Du alleine mit Hilfe einschlägiger Quellen wie SelfHTML und Google nicht lösen kannst, so zögere nicht zu fragen.

      Cheatah

      ich habe fertige scripte gefunden... nur leider muss das datum da anders eigegeben werden damit es berechnet wird...

      1. Hi,

        ich habe fertige scripte gefunden... nur leider muss das datum da anders eigegeben werden damit es berechnet wird...

        nun, dann liegt es nahe, die Aufgabe selbst zu lösen, meinst Du nicht?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Hi,

          ich habe fertige scripte gefunden... nur leider muss das datum da anders eigegeben werden damit es berechnet wird...

          nun, dann liegt es nahe, die Aufgabe selbst zu lösen, meinst Du nicht?

          Cheatah

          meinste das hab ich nicht versucht? danke für deine schlauen worte

          1. Zitat:

            Von allen hier Teilnehmenden werden HTML-Grundkenntnisse erwartet. Es wird erwartet, dass bei Problemen erst einmal in SELFHTML, im Kapitel Forumsarchiv oder in anderen Quellen nach einer Lösung gesucht wird.

            Struppi.

            1. Zitat:

              Von allen hier Teilnehmenden werden HTML-Grundkenntnisse erwartet. Es wird erwartet, dass bei Problemen erst einmal in SELFHTML, im Kapitel Forumsarchiv oder in anderen Quellen nach einer Lösung gesucht wird.

              Struppi.

              zwischenfrage: was haben HTML grundkenntnisse mit javascript zutun? ich sehe da ein unterschied wie min. tag und nacht

              1. Hi,

                Von allen hier Teilnehmenden werden HTML-Grundkenntnisse erwartet. Es wird erwartet, dass bei Problemen erst einmal in SELFHTML, im Kapitel Forumsarchiv oder in anderen Quellen nach einer Lösung gesucht wird.
                zwischenfrage: was haben HTML grundkenntnisse mit javascript zutun? ich sehe da ein unterschied wie min. tag und nacht

                selbst wenn zwischen HTML und JavaScript keinerlei Berührungspunkte existieren würden, so änderte dies nichts am entscheidenden zweiten Satz obigen Zitats.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
          2. Hi,

            nun, dann liegt es nahe, die Aufgabe selbst zu lösen, meinst Du nicht?
            meinste das hab ich nicht versucht?

            nein, denn andernfalls könntest Du ein Problem formulieren, anstatt nur eines Ziels.

            danke für deine schlauen worte

            Gerne, davon kannst Du noch mehr bekommen.

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Gerne, davon kannst Du noch mehr bekommen.

              Cheatah

              kann ich drauf verzichten mein gutster

              1. Hi,

                Gerne, davon kannst Du noch mehr bekommen.
                kann ich drauf verzichten mein gutster

                es freut mich, dass Du nicht auf Hilfe anderer angewiesen bist. Weiterhin viel Erfolg bei Deinem Vorhaben!

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
  2. Hallo Hypo,

    falls Du es bei dem etwas unerquicklichen bisherigen Verlauf des Threads nicht gemerkt hast: Es ist aus Deinen Postings keine Frage erkennbar, auf die Dir jemand eine Antwort geben könntest. Du erklärst nur, was Du vorhast. Und da kann man Dir halt bestenfalls "viel Glück" wünschen.

    Ciao
    Hans-Peter

  3. Hallo,

    Wie gesagt ist deine Frage herzlich unkonkret, daher wird das hier zur Ratestunde.

    ich habe eine variable wo man sein geburtsdatum angeben kann.

    Ich nehme einmal an, du hast ein Formular, in das jemand das Geburtsdatum eingibt und welches du mit JavaScript ausliest, oder du fragst es z.B. mit window.prompt() direkt ab.

    Welche Methode auch immer du anwendest, so liegt dir wahrscheinlich eine Zeichenkette vor, die das Geburtsdatum in einem bestimmten Formt enthält, z.B. "05.10.2005".

    Um in JavaScript mit Zeitwerten zu rechnen, werden Date-Objekte genutzt. Das Datum, das noch als String vorliegt, muss erst in ein Datumsobjekt umgewandelt werden. Das ist in dem Fall nicht so einfach, weil erst Tag, Monat und Jahr aus dem String extrahieren muss, denn man braucht sie als Zahlen. Wie kommt man also z.B. an "10" für de Monat und darüber an den Zahlwert 5? substr() hilft dabei weiter, die Umwandlung in den Zahlwert übernimmt i.d.R. JavaScript für einen.

    Das nötige Schema zur Erzeugung eines Datumsobjekt ist, wie auf der genannten Seite beschrieben:
    var neuesDatumsobjekt = new Date(Jahr, Monat, Tag);
    Wobei die Monatszählung mit 0 beginnt, Oktober wäre also 9, was man aber z.B. durch den Rechenausdruck
    eingabedatum.substr(3, 2) - 1  ergibt  "10" - 1  ergibt  9
    bekommt.

    So bekommt man also ein Datumsobjekt aus dem eingegebenen Datum. Jetzt braucht man noch eines, das die gegenwärtige Zeit enthält. Ein solches entsteht, wenn man new Date() ohne Parameter aufruft (und den Rückgabewert in einer Variable speichert, natürlich).

    Diese zwei Datumsobjekte kann man voneinander subtrahieren, um die Differenz zu bekommen. Man vergleicht den Timestamp-Wert (der Link erklärt das) der Daten, siehe die Methode gettTime().

    Man bekommt also eine große Nummer, die besagt, wieviele Millisekunden der Mensch schon (ungefähr) lebt. Um daraus ein lesbares Datum zu bekommen, muss man herumrechnen. Ausgehend davon, wieviele Millisekunden ein Jahr hat. Das ist eine einache Division und eine Abrundung.

    Mathias

    1. Hallo molily,

      Diese zwei Datumsobjekte kann man voneinander subtrahieren, um die Differenz zu bekommen. Man vergleicht den Timestamp-Wert (der Link erklärt das) der Daten, siehe die Methode gettTime().

      Man bekommt also eine große Nummer, die besagt, wieviele Millisekunden der Mensch schon (ungefähr) lebt. Um daraus ein lesbares Datum zu bekommen, muss man herumrechnen. Ausgehend davon, wieviele Millisekunden ein Jahr hat. Das ist eine einache Division und eine Abrundung.

      Das wird an vielen Zeitpunkten passen. Je älter die Person ist, um so weniger. Schaltjahre sollten halt berücksichtigt werden. Insofern ziehe ich den Vergleich von Tag, Monat und Jahr einer Division vor.

      Freundliche Grüße

      Vinzenz

      1. Tach,

        hier noch ein Beispiel für einen solchen Fehler, für Leute, die, wie ich, erst selber nachrechnen müssen: Geburtstag ist 2004-01-18T00:00, berechnet man jetzt das Alter nach molilys Methode um 2005-01-17T00:01 sind bereits mehr als 365 Tage vergangen und man erhält bereits das Alter 1, obwohl 0 korrekter wäre.

        mfg
        Woodfighter

      2. Hallo,

        Das wird an vielen Zeitpunkten passen. Je älter die Person ist, um so weniger. Schaltjahre sollten halt berücksichtigt werden. Insofern ziehe ich den Vergleich von Tag, Monat und Jahr einer Division vor.

        Ja, stimmt, das habe ich nicht bedacht.

        (Übrigens, falls es dir aufgefallen ist, ging es mir nicht darum, eine überkorrekte Lösung zu posten.)

        Mathias

        1. Hallo Mathias,

          (Übrigens, falls es dir aufgefallen ist, ging es mir nicht darum, eine überkorrekte Lösung zu posten.)

          Ja, das ist mir aufgefallen. Ich habe ebenfalls nur eine weitere Idee in den Raum gestellt, bei der die von Dir geposteten Links sehr hilfreich sind - aber keine konkrete Lösung, nur einen weiteren Lösungsansatz.

          Freundliche Grüße

          Vinzenz