Zum Inhalt springen

Per Javascript aus einem Datum das Alter berechnen und ausgeben

Gegeben seien Zeitungen mit unterschiedlichen Erscheinungsdatum.
Gefordert ist, das Alter der Zeitung auszugeben, egal in welchem Jahr man sich selbst befindet.

Das Ganze dann noch in einer Shopware Umgebung.

In Shopware habe ich bei jedem Artikel freie Attributsfelder attr6:Monat, attr4:Tag, attr9:Jahr.

Hier nun das Script was das Alter berechnet und zurückgibt, es erwartet als Wert TT/MM/JJJJ:

function getAge(DOB) {
var today = new Date();
var birthDate = new Date(DOB);
var age = today.getFullYear() - birthDate.getFullYear();
var m = today.getMonth() - birthDate.getMonth();
if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
age = age - 1;
}
return age;
}

Quelle: https://jsfiddle.net/naveen/UH9fT/

Und hier die Funktion die bei jedem Aufruf einer Zeitungsseite ausgeführt wird. Es sichert das Alter in der Variablen vAlterDerZeitung:

var vAlterDerZeitung = getAge("{$sArticle.attr6}/{$sArticle.attr4}/{$sArticle.attr9}");

Da ich die Artikel per Import in Shopware lade und möglichst flexibel bleiben wollte an welcher Stelle ich das Alter einsetze, habe ich einen Platzhalter “AlterDerZeitung” in der Artikelbeschreibung hinterlegt.

Dieser Aufruf ersetzt nun den Platzhalter mit dem eigentlichen Alter:

document.body.innerHTML = document.body.innerHTML.replace(/AlterDerZeitung/g, vAlterDerZeitung);
Schreibe einen Kommentar