Christian: Problem mit Uhrzeit/Datum

Beitrag lesen

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