Hi!
Irgendwie hatte ich mir das ganze doch einfacher vorgestell;-)
Bis hierher alles klar. Offenbar verstehst Du, dass getTime() den Wert des Datums als Sekunden seit 1970 zurueckgibt. Aber dann:
Zeit.setTime(Diff);
Warum? Das ist die Umkehrung von getTime(). D.h. Du setzt ein DATUM, nicht etwa eine Zeitdifferenz. Dadurch, dass die Sekunden ja seit 1970 gelten, erklaert sich Deine seltsame Ausgabe.
Ich kann das einfach nicht verstehen! Ich muß doch irgendwie die Differenz ausrechnen können(das sollte ich doch wenigstens geschafft haben!), daraus dann die Anzahl an Sekunden, Minuten, Stunden und Tagen bekommen, oder??? Ganz unabhängig von irgendeinem Datum oder so!
var Jahr = Zeit.getYear();
if(Jahr < 999) Jahr += 1900;
Nimm einfach getFullYear().
Aber das geht erst ab IE 5.0!
var Stunden = Zeit.getHours();
getHours gibt die Stunden in was zurueck? In der Lokalzeit. Die Sekunden seit 1970 gelten aber in UTC, also britische Zeit (im Winter). Der sind wir hier aber um 1 Stunde voraus, im Sommer sogar 2 Stunden. Daher dann also Deine abweichende Zeitangabe. Schau Dir getUTCHours() an.
Wieder die Sache mit IE5.0! Aber ich verstehe die Notwendigkeit auch nicht, da ich ja lediglich eine _Differenz_ ausrechnen will, sch... egal in welcher Zeitzone, solange Subtrahent und Minuent (ohhh!) sich auf die gleiche Zone beziehen!
Aber: Welches Ergebnis erwartest Du eigentlich bei der Umrechnung? Nehmen wir an, Du hast eine Differenz von
365*24*3600 sec = 31536000 sec. Wieviel ist das umgerechnet? Ein Jahr? Aber wenn heute der 1.1.2004 ist, dann hat das Jahr 366 Tage, die Sekundenanzahl gibt aber nur 1 Tag weniger her. Was willst Du tun? Durch die exakte Zahl der Sekunden eines Jahres, naemlich 365.2422*24*3600 dividieren? Das waere theoretisch richtiger, bringt aber erst recht nicht die erwarteten Resultate. (Z.B. wird die Diff. zw. 1.1.2004 und 1.1.2005 als 1.002074787634 Jahre = 1 Jahr, 18 h, 11 min, 13.9 sec errechnet, die zwischen 1.1.2003 und 1.1.2004 aber nur als 0.9993368783782 Jahre = 365 Tage, also 5 h, 48 min, 46 sec weniger als 1 Jahr. (Rechne einfach mal nach mit 1 Jahr = 365.2422 Tage.))
Hast Du darueber schonmal nachgedacht? Komm, sei ehrlich. ;-) Ich weiss jedenfalls nicht, wie man es korrekt macht.
Da brauch ich nicht drüber nachzudenken, da ich wie gesagt eine Differenz ausrechnen will!
Ich will die Tage.... eine Differenz bekommen, oder muß ich das zu Fuß machen(also Diff ind Millosekunden /1000, und... alles einzelnd azusrechnen)? Aber da weiß ich auch nicht genau, wie ich das machen soll!
Danke für deine Hilfe schonmal, jetzt versteh ich das schon etwas besser, nur leider noch nicht gut genug;-)
Grüsse
Andreas