Hallo Andreas!
Hab mir das mal angesehen und mit folgendem Skript kannst Du zwischen zwei beliebigen Zeitpunkten die Differenz in Jahren, Monaten, Tagen, Stunden, Minuten und Sekunden berechnen:
<script language="Javascript">
function ZeitBerechnen() {
var StartZeit = new Date();
var StartJahr = StartZeit.getFullYear();
var StartMonat = StartZeit.getMonth();
var StartTag = StartZeit.getDate();
var StartStunde = StartZeit.getHours();
var StartMinute = StartZeit.getMinutes();
var StartSekunde = StartZeit.getSeconds();
var EndZeit = new Date(2010,0,15,2,0,0); //15.1.2010 um 2:00:00 Uhr
var EndJahr = EndZeit.getFullYear();
var EndMonat = EndZeit.getMonth();
var EndTag = EndZeit.getDate();
var AbsolutStart = StartZeit.getTime();
var AbsolutEnd = EndZeit.getTime();
var Diff = AbsolutEnd - AbsolutStart;
if (!(Diff>0))
{
msgbox("Der angegebene Zeitpunkt liegt in der Vergangenheit!");
return;
}
var AnzahlJahre = EndJahr - StartJahr;
var AnzahlMonate = EndMonat - StartMonat;
if (EndMonat < StartMonat)
{
AnzahlJahre -= 1; AnzahlMonate = 12 + AnzahlMonate;
}
var AnzahlTage = 0;
if (EndTag < StartTag)
{
if (AnzahlMonate == 0)
{
AnzahlMonate = 11;
AnzahlJahre -= 1;
}
else AnzahlMonate -= 1;
var Jahr = (EndMonat == 0) ? EndJahr -1: EndJahr;
var Datum = new Date();
for (var Tag=StartTag+1; Tag < 32; Tag++)
{
Datum.setDate(Jahr,EndMonat-1,Tag,StartStunde,StartMinute,StartSekunde);
if (Datum.getMonth == EndMonat) break;
AnzahlTage += 1;
}
AnzahlTage += EndTag;
}
else
AnzahlTage = EndTag - StartTag;
var Datum = new Date(EndJahr,EndMonat,EndTag,StartStunde,StartMinute,StartSekunde);
var AbsolutDatum = Datum.getTime();
var Diff2 = (AbsolutEnd - AbsolutDatum)/1000;
Diff2 = (Diff2 < 0) ? Diff2 + 24*60*60 : Diff2;
var AnzahlStunden = Math.floor(Diff2/(60*60));
Diff2 = Diff2 % (60*60);
var AnzahlMinuten = Math.floor(Diff2/60);
var AnzahlSekunden = Diff2 % 60;
alert(AnzahlJahre + " Jahre, " + AnzahlMonate + " Monate, " + AnzahlTage + " Tage\n"+AnzahlStunden + " Stunden, " + AnzahlMinuten + " Minuten, " + AnzahlSekunden + " Sekunden");
}
ZeitBerechnen ();
</script>
Hat bei allen möglichen Datumsangaben funktioniert.
lg
Christian