Date Berechnungen

Hi,

wenn du ein Datum suchst, das 14 Tage in der Vergangenheit liegt, solltest du die 28 selbstverständlich gegen 14 austauschen. Soviel Eigeninitiative hatte ich vorausgesetzt.

Und ein letztes Mal: die Monatsnummerierung beginnt beim Date-Objekt bei 0.
D.h. 0=Januar, 1=Februar, ..., 11=Dezember. Diese Integerwerte liefert dir die Methode getMonth zurück und sie werden intern zur Datumsberechnung verwendet.

Mehr zum Date-Objekt findest du bei SelfHTML, auch speziell zu den Monaten und deren Darstellung.

Ciao
Quaese
 
habe natürlich auch 14 eingesetzt, was ja bereits viele posts vorher steht.

finde deine hilfe sehr nett und frage mich nur, wie dieser code bei dir richtige ergebnisse zaubert.

bei mir klappt es nur so:

Code:
		function getDateTime(auswahl)
	{
		 
		  var currentTime = new Date();

		  // Einen Monat weiter
		  var month = new Date(currentTime.getFullYear(), currentTime.getMonth() + 0, currentTime.getDate());
		  // 28 Tage zurück
		  var day2 = new Date(currentTime.getFullYear(), currentTime.getMonth() + 1, currentTime.getDate()-14);
		  var monat2 = new Date(currentTime.getFullYear(), currentTime.getMonth()-0, currentTime.getDate());
		  // Drei Monate zurück
		  var monat3 = new Date(currentTime.getFullYear(), currentTime.getMonth()-2, currentTime.getDate());
		  // Sechs Monate zurück
		  var monat6 = new Date(currentTime.getFullYear(), currentTime.getMonth()-5, currentTime.getDate());

		  if (auswahl == "2weeks"){
			alert((day2.getFullYear() + "-" + ((day2.getMonth()<10)?"0"+day2.getMonth():day2.getMonth()) + "-" + ((day2.getDate()<10)?"0"+day2.getDate():day2.getDate())));
		    return (day2.getFullYear() + "-" + ((day2.getMonth()<10)?"0"+day2.getMonth():day2.getMonth()) + "-" + ((day2.getDate()<10)?"0"+day2.getDate():day2.getDate()));
		
		  }else if (auswahl == "lastmonth"){
			alert(monat2.getFullYear() + "-" + ((monat2.getMonth()<10)?"0"+monat2.getMonth():monat2.getMonth()) + "-" + ((monat2.getDate()<10)?"0"+monat2.getDate():monat2.getDate()));
		    return (monat2.getFullYear() + "-" + ((monat2.getMonth()<10)?"0"+monat2.getMonth():monat2.getMonth()) + "-" + ((monat2.getDate()<10)?"0"+monat2.getDate():monat2.getDate()));
		
		  }else if (auswahl == "last3month"){
			alert(monat3.getFullYear() + "-" + ((monat3.getMonth()<10)?"0"+monat3.getMonth():monat3.getMonth()) + "-" + ((monat3.getDate()<10)?"0"+monat3.getDate():monat3.getDate()));
		    return (monat3.getFullYear() + "-" + ((monat3.getMonth()<10)?"0"+monat3.getMonth():monat3.getMonth()) + "-" + ((monat3.getDate()<10)?"0"+monat3.getDate():monat3.getDate()));
		
		  }else if (auswahl == "last6month"){
			alert(monat6.getFullYear() + "-" + ((monat6.getMonth()<10)?"0"+monat6.getMonth():monat6.getMonth()) + "-" + ((monat6.getDate()<10)?"0"+monat6.getDate():monat6.getDate()));			
		    return (monat6.getFullYear() + "-" + ((monat6.getMonth()<10)?"0"+monat6.getMonth():monat6.getMonth()) + "-" + ((monat6.getDate()<10)?"0"+monat6.getDate():monat6.getDate()));
		

		
		  }
 
Hi,

reden wir von der Ausgabe oder von der Berechnung?

Die Berechnung wird so, wie ich sie dir gezeigt habe, richtig durchgeführt. Willst du, dass bei der Ausgabe z.B. für den Dezember die 12 statt der 11 steht, so musst du Eins bei der Ausgabe addieren.

Im folgenden Beispiel ist die Korrektur für 2weeks aufgezeigt:
Code:
function getDateTime(auswahl){

  var currentTime = new Date();

  // Einen Monat weiter
  var month = new Date(currentTime.getFullYear(), currentTime.getMonth() + 1, currentTime.getDate());
  // 14 Tage zurück
  var day2 = new Date(currentTime.getFullYear(), currentTime.getMonth(), currentTime.getDate()-14);
  var monat2 = new Date(currentTime.getFullYear(), currentTime.getMonth()-1, currentTime.getDate());
  // Drei Monate zurück
  var monat3 = new Date(currentTime.getFullYear(), currentTime.getMonth()-3, currentTime.getDate());
  // Sechs Monate zurück
  var monat6 = new Date(currentTime.getFullYear(), currentTime.getMonth()-6, currentTime.getDate());

  if (auswahl == "2weeks"){
    alert((day2.getFullYear() + "-" + ((day2.getMonth()+1<10)?"0"+(day2.getMonth()+1):day2.getMonth()+1) + "-" + ((day2.getDate()<10)?"0"+day2.getDate():day2.getDate())));
    return (day2.getFullYear() + "-" + ((day2.getMonth()+1<10)?"0"+(day2.getMonth()+1):day2.getMonth()+1) + "-" + ((day2.getDate()<10)?"0"+day2.getDate():day2.getDate()));
  }else if (auswahl == "lastmonth"){
    alert(monat2.getFullYear() + "-" + ((monat2.getMonth()<10)?"0"+monat2.getMonth():monat2.getMonth()) + "-" + ((monat2.getDate()<10)?"0"+monat2.getDate():monat2.getDate()));
    return (monat2.getFullYear() + "-" + ((monat2.getMonth()<10)?"0"+monat2.getMonth():monat2.getMonth()) + "-" + ((monat2.getDate()<10)?"0"+monat2.getDate():monat2.getDate()));
  }else if (auswahl == "last3month"){
    alert(monat3.getFullYear() + "-" + ((monat3.getMonth()<10)?"0"+monat3.getMonth():monat3.getMonth()) + "-" + ((monat3.getDate()<10)?"0"+monat3.getDate():monat3.getDate()));
    return (monat3.getFullYear() + "-" + ((monat3.getMonth()<10)?"0"+monat3.getMonth():monat3.getMonth()) + "-" + ((monat3.getDate()<10)?"0"+monat3.getDate():monat3.getDate()));
  }else if (auswahl == "last6month"){
    alert(monat6.getFullYear() + "-" + ((monat6.getMonth()<10)?"0"+monat6.getMonth():monat6.getMonth()) + "-" + ((monat6.getDate()<10)?"0"+monat6.getDate():monat6.getDate()));
    return (monat6.getFullYear() + "-" + ((monat6.getMonth()<10)?"0"+monat6.getMonth():monat6.getMonth()) + "-" + ((monat6.getDate()<10)?"0"+monat6.getDate():monat6.getDate()));
  }
}

Ciao
Quaese
 
Zurück