Datum ermitteln aus Tag des Jahres
Stift
- javascript
Hallo,
ich habe ein Problem mit Javascript. Ich habe die Jahreszahl und den Tag des Jahres.
Wie kann ich daraus in Javascript das vollstaendige Datum ermitteln?
Moin
function jahr_und_tag(j,t) {
var datum=new Date(j,0,1);
datum.setTime(datum.getTime()+(t-1)*86400000);
return datum;
}
erwartet eine Jahreszahl j und einen Tag t als Argumente, gibt das entsprechende Datum als Date-Objekt zurück.
Hier fehlen allerdings noch sämtliche Sicherheitsabfragen auf falsche oder fehlende Argumente.
Gruß
rfb
Yerf!
[code lang=javascript]function jahr_und_tag(j,t) {
var datum=new Date(j,0,1);
sollte ein
var datum=new Date(j,0,t);
nicht auch gehen?
datum.setTime(datum.getTime()+(t-1)*86400000);
Das arbeiten mit den Millisekunden über größere Zeiträume kann wegen der Sommer-/Winterzeitumstellung gefährlich werden. (Eine fehlende Stunde kann schnell zum Vortag als Ergebnis führen)
Gruß,
Harlequin
Moin
sollte ein
var datum=new Date(j,0,t);
nicht auch gehen?
Nein, denn zB. den 365. Januar gibts nicht! Soweit ich die Problemstellung verstanden habe geht es doch darum zB. dem 127. Tag des Jahres 2006 eine Datumsangabe mit Tag Monat Jahr zuzuordnen.
datum.setTime(datum.getTime()+(t-1)*86400000);
Das arbeiten mit den Millisekunden über größere Zeiträume kann wegen der Sommer-/Winterzeitumstellung gefährlich werden. (Eine fehlende Stunde kann schnell zum Vortag als Ergebnis führen)
schwierig, da ja das System selbst ausschließlich mit Millisekunden arbeitet!
Wer da Sorgen hat, kann die Variable datum ja mit der zusätzlichen Zeitangabe 12:00:00 initialisieren, dann ist mit oder ohne Sommerzeit der Rückgabewert von datum immer am erwarteten Kalendertag.
Gruß
rfb
Yerf!
Nein, denn zB. den 365. Januar gibts nicht! Soweit ich die Problemstellung verstanden habe geht es doch darum zB. dem 127. Tag des Jahres 2006 eine Datumsangabe mit Tag Monat Jahr zuzuordnen.
JavaScript ist da aber anderer Meinung ;-)
Das wird intern umgerechnet, beim Auslesen kommt dann das richtige Datum raus.
Das arbeiten mit den Millisekunden über größere Zeiträume kann wegen der Sommer-/Winterzeitumstellung gefährlich werden. (Eine fehlende Stunde kann schnell zum Vortag als Ergebnis führen)
schwierig, da ja das System selbst ausschließlich mit Millisekunden arbeitet!
Wer da Sorgen hat, kann die Variable datum ja mit der zusätzlichen Zeitangabe 12:00:00 initialisieren, dann ist mit oder ohne Sommerzeit der Rückgabewert von datum immer am erwarteten Kalendertag.
Stimmt auch.
Man kann aber auch über datum.setDate(datum.getDate()+t-1); arbeiten, wieso das geht steht oben.
Gruß,
Harlequin
Moin
JavaScript ist da aber anderer Meinung ;-)
Das wird intern umgerechnet, beim Auslesen kommt dann das richtige Datum raus.
Nun, dann erübrigt sich das Rechenverfahren. Bestand eine Notwendigkeit, dies erst auf meinen Gegeneinwand zu erwähnen? Ich kann Wahrheiten verkraften.
Man kann aber auch über datum.setDate(datum.getDate()+t-1); arbeiten, wieso das geht steht oben.
Nein, da steht dass das genauso überflüssig ist.
Gruß
rfb
Yerf!
Moin
JavaScript ist da aber anderer Meinung ;-)
Das wird intern umgerechnet, beim Auslesen kommt dann das richtige Datum raus.
Nun, dann erübrigt sich das Rechenverfahren. Bestand eine Notwendigkeit, dies erst auf meinen Gegeneinwand zu erwähnen? Ich kann Wahrheiten verkraften.
Ich hab nicht dran gedacht, dass dieses Verhalten von JS zu ungewöhnlich ist, als dass man es als gegeben voraussetzen könnte. Aber stimmt schon, so manche Dinge am Date-Objekt passen gut zum 32. März ;-)
Man kann aber auch über datum.setDate(datum.getDate()+t-1); arbeiten, wieso das geht steht oben.
Nein, da steht dass das genauso überflüssig ist.
Hm, nicht ganz. Als allgemeine Methode, um von einem beliebigen Datum x Tage später zu berechnen, hat sie durchaus Existenzberechtigung.
Gruß,
Harlequin