Heim >Web-Frontend >js-Tutorial >Wie kann ich das Alter anhand einer Datumszeichenfolge JJJJMMTT effizient berechnen?
Alter anhand des Geburtsdatums im Format JJJJMMTT berechnen
Das Berechnen des Alters einer Person anhand ihres Geburtsdatums ist eine häufige Programmieraufgabe. Bei einem Geburtsdatum im Format JJJJMMTT können zahlreiche Ansätze zum Einsatz kommen. Die Frage untersucht eine alternative Lösung zu der derzeit verwendeten:
var dob = '19800810'; var year = Number(dob.substr(0, 4)); var month = Number(dob.substr(4, 2)) - 1; var day = Number(dob.substr(6, 2)); var today = new Date(); var age = today.getFullYear() - year; if (today.getMonth() < month || (today.getMonth() == month && today.getDate() < day)) { age--; } alert(age);
Die vorgeschlagene Lösung geht das Problem mit der Substr-Methode an und bietet einen prägnanteren und optimierten Ansatz:
function getAge(dateString) { var today = new Date(); var birthDate = new Date(dateString); var age = today.getFullYear() - birthDate.getFullYear(); var m = today.getMonth() - birthDate.getMonth(); if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { age--; } return age; }
Diese Funktion vereinfacht die Berechnung, indem sie das Date-Objekt direkt verwendet, um das Geburtsdatum zu erstellen und die erforderlichen Informationen zu extrahieren. Außerdem wird nach Szenarien gesucht, in denen der Geburtsmonat und -tag im aktuellen Jahr noch nicht vorgekommen ist, und das Alter entsprechend verringert.
Während die ursprüngliche Lösung funktionsfähig ist, verwendet sie die substr-Methode, um Datumskomponenten zu extrahieren kann zu Verwirrung und möglichen Fehlern führen. Die vorgeschlagene Funktion bietet eine einfachere und effizientere Methode zur Berechnung des Alters auf der Grundlage eines angegebenen Geburtsdatums im Format JJJJMMTT.
Das obige ist der detaillierte Inhalt vonWie kann ich das Alter anhand einer Datumszeichenfolge JJJJMMTT effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!