mit zeitangaben rechnen
edel
- javascript
hallo
ich suche eine möglichkeit mit zeitangaben zu rechnen
z.b.
12:00:00 - 1h 40 min. = 10:20:00
habe gestern hier zwar folgendes js gefunden aber dort stört mich
die tagesangabe
function fuehrendeNull(wert)
{
if (wert<10) return "0" + parseInt(wert);
else return parseInt(wert);
}
function Sekundenumwandeln(Sekundenzahl)
{
Sekundenzahl = Math.abs(Sekundenzahl)
return parseInt(Sekundenzahl/60/60/24)+ " Tage " + fuehrendeNull((Sekundenzahl/60/60)%24) + ":" +
fuehrendeNull((Sekundenzahl/60)%60) + ":" + fuehrendeNull(Sekundenzahl%60);
}
gibt es auch eine möglichkeit wenn ich z.b. die zeit 00:30.00 habe
und davon 2 H abziehe das ich dann auch das datum vom vortag bekomme?
kann mir da einer weiter helfen ?
Wenn Du alles in Sekunden (z.B. seit 1970 - also Unix-Timestamp) umrechnest und die Sekunden wieder in ein Datum, dann geht es natürlich.
Sandra Starck
Guude!
gibt es auch eine möglichkeit wenn ich z.b. die zeit 00:30.00 habe
und davon 2 H abziehe das ich dann auch das datum vom vortag bekomme?
Ja, natürlich! Solang Du ein paar Punkte berücksichtigst:
Gestern ist der Tag vor heute ;) -> heute -1 = gestern
Gestern kann aber auch ein anderer Monat gewesen sein (trifft _heute_ ja auch zu) -> wenn heute = 1.Tag eines Monats, war gestern der letzte Tag des heutigen Monats - 1.
Der letzte Tag des Vormonats kann der 31., der 30., der 28. oder -im Fall eines Schaltjahres (Jahreszahl % 4 = 0)- auch der 29. gewesen sein -> Array mit den letzten Tagen der jeweiligen Monate anlegen
Der gestrige Tag kann auch letztes Jahr gewesen sein -> wenn heutiger Tag == 1 und heutiger Monat == 1, dann aktuelles Jahr -1 = gestriges Jahr
Das alles einfach in JS umsetzen, und Du hast Deine Lösung.
.
.
.
.
.
... oder Du rechnest einfach mit dem UTC :-P http://selfhtml.teamone.de/javascript/objekte/date.htm
LG ausm Hesseland
Lemmy
Hallo,
Ja, natürlich! Solang Du ein paar Punkte berücksichtigst:
Das ist alles gar nicht noetig, denn das Datumsobjekt ist flexibel genug:
var std,min,sek,diff,datum;
// 00:30:00
std=0;
min=30;
sek=0;
// Stundendifferenz
diff=2;
datum=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate(),std-diff,min,sek);
alert(datum.getDate()+"."+parseInt(datum.getMonth()+1)+"."+datum.getFullYear());
// Ergebnis heute: 28.2.2003 (=Vortag)
MfG, Thomas
Hi!
var std,min,sek,diff,datum;
// 00:30:00
std=0;
min=30;
sek=0;
// Stundendifferenz
diff=2;datum=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate(),std-diff,min,sek);
alert(datum.getDate()+"."+parseInt(datum.getMonth()+1)+"."+datum.getFullYear());// Ergebnis heute: 28.2.2003 (=Vortag)
Und wenn wir etwas flexibler sein und die Zeitdifferenz nicht nur in Stunden angeben wollen, sondern
z.B. auch mehrere Tage als Zeitdifferenz zulassen wollen:
var BezugsZeit = new Date(); // entsprechende Parameter uebergeben, wenn nicht "jetzt" gewuenscht ist!
var diff = 3*24*60*60*1000; // Zeitdifferenz in Millisekunden, hier fuer 3 Tage
var result = new Date(BezugsZeit.getTime() - diff);
result enthaelt nun das Ergebnis als Date-Objekt. Man kann mit result.getHours() usw. die gespeicherte Zeit abfragen.
Und damit sind wir wieder an der Stelle, die Sandra genannt hat.
So long