Mit JavaScript Alter ausrechnen?
Ist es möglich über JavaScript, wenn man das Geburstsdatum eintippt, dass das Alter ausgerechnet wird?
Es soll dann neben stehen: 41 Jahre und 100 Tage
1 Antwort
Solche Berechnungen lassen sich eigentlich in jeder beliebigen Programmiersprache anstellen und sind eigentlich nichts Besonderes. Im Grunde eine klassische Übungsaufgabe wie "Hallo Welt" für Anfänger, um eine Sprache zu lernen.
HTML:
<input type="date" id="date">
<button onclick="alert(calcAge())">Berechnen</button>
JavaScript:
const calcAge = () => {
const date = document.querySelector('#date').value,
today = new Date(),
birth = new Date(date);
let age = today.getFullYear() - birth.getFullYear();
const m = today.getMonth() - birth.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birth.getDate())) {
age--;
}
const months = today.getMonth() - birth.getMonth(),
days = today.getDate() - birth.getDate();
return `
Du bist ${age} Jahre,
${months} Monate und ${days} Tage alt.
`;
}
LG medmonk
Wurde der Screenshot nachträglich hinzugefügt? Wie dem auch sei, ich habe deine Frage falsch verstanden. Die Berechnung an sich ist im Grunde identisch, in deinem Fall aber noch eine Format-Abfrage vorhanden sein sollte.
Ich haben den Quellcode an dein gewünschtes Format angepasst. Man könnte es jetzt noch um Formate erweitern, die habe ich jetzt aber mal außen vor gelassen. Danach wurde ja auch nicht gefragt und ja selber noch umsetzen kannst.
Ich weiß ehrlich gesagt nicht, was ich jetzt mit deinem Fiddle anfangen soll. In deinem angehängtem Code-Snippet sehe ich nichts von der Funktion und es dort auch nicht um die Berechnung des Alters geht.
Wie soll das Script denn funktionieren, wenn es nirgendwo aufgerufen und somit ausgeführt wird. ;) Du musst schon einen Funktion aufrufen (z.B. mit einem Button), damit sie entsprechend abgearbeitet wird.
<button onclick="alert(calcAge())">Berechnen</button>
Verwende ein Input vom Typ "date" (siehe oben) und wenn die Funktion an.
Da haben einfach gefühlt zigtausend schließende, geschweifte Klammern gefehlt (auch war die Funktion im Fiddle eine völlig andere als die aus der Antwort hier, und hatte einige andere Fehler). Hier die behobene Version: https://jsfiddle.net/hug5abp1/
Diese berechnet allerdings Geburtstage im laufenden Jahr, die noch nicht passiert sind, nicht korrekt. Keine Ahnung, wo du die Funktion her hast (die aus der Antwort hier ist es wie gesagt nicht).
"geht nicht" ist übrigens keine Fehlerbeschreibung.
Da haben einfach gefühlt zigtausend schließende, geschweifte Klammern gefehlt
Wo denn bitte? Den einzigen Fehler, den ich jetzt ausmachen konnte, war ein Semikolon anstelle eines Kommas. Ich wüsste daher gerne, wo du die zigtausend geschweiften Klammern vermisst haben möchtest?
Klär mich bitte kurz auf, stehe das etwas auf dem Schlauch und nicht ganz folgenden kann - auf was du dich jetzt beziehst.
Sorry, ich beziehe mich auf sein Fiddle (https://jsfiddle.net/5vjh0zrd/). "Zigtausend" war eine Hyperbel, am Ende des JavaScripts fehlen aber einfach drei Klammern: https://share.cleanshot.com/Cn2zVhsy
Bei der Hyperbel bin ich ja noch mitgekommen, danach war ich raus. Danke fürs Richtigstellen, dann kann nachher doch ruhig schlafen. 😉
Schönes Wochenende
medmonk
es funktioniert nicht