Immer eine Woche vorwärts - theoretisch

decola

Grünschnabel
Hallo @ all. Ich arbeite gerade an einer Kalenderkomponente und dafür ist es nötig immer eine Woche vorzugehen und das auch über mehrere Monate hinweg.

Dazu nehm ich das aktuelle Datum wandel es in MS um packe dann die Zeit in MS von einer Woche wieder drauf und mach das ganze zum Datum. Das ganze sieht dann so aus.

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<title>Calendear</title>
		<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
		<script type="text/javascript">
			var Debug = [];
			tmpDateObj = new Date('Tue Aug 24 2010 00:00:00 GMT+0200');
			
			for (k=0; new Date (Date.parse('Tue Aug 24 2011 00:00:00 GMT+0200')) >= tmpDateObj; k++)
			{						
				tmpDateObj = new Date (Date.parse(tmpDateObj) + 1000 * 60 * 60 * 24 * 7);
				
				Debug.push("\n" + tmpDateObj);					
			}
			alert (Debug);
		</script>
	</head>
	<body>
	</body>
</html>

Was dann Schlussendlich so endet.

attachment.php


[in IE8, ff 3.5.11 und opera 10.60]

Und jetzt frag ich mich warum mein lieber netter Browser aufeinmal in der Zeitzone springt?!

any Ideas?
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    96 KB · Aufrufe: 43
Zuletzt bearbeitet:
Nö, das ist jedes Jahr an einem anderen Tag(ist ja immer von Samstag auf Sonntag)

http://www.zeitumstellung.de/zeitumstellung-historisch-archiv.html


Aber wann es jeweils ist, erkennst du ja an der Zeitzone :)


Ein Hilfsmittel, um zu ermitteln, ob an einem Datum Sommerzeit ist, findest du hier:
http://www.tutorials.de/javascript-...en-ob-sommer-oder-winterzeit.html#post1876411

Du kannst anhand dessen tmpDateObj um 1h korrigieren.

Code:
	<script type="text/javascript">
			Date.prototype.DST=function()
      {  
        new Date(1).getTimezoneOffset() / 60;
        return (((new Date(1).getTimezoneOffset() / 60)==(this.getTimezoneOffset() / 60))?false:true);
      }
			
			var Debug = [];
			tmpDateObj = new Date('Tue Aug 24 2010 00:00:00 GMT+0200');
			for (k=0; new Date (Date.parse('Tue Aug 24 2011 00:00:00 GMT+0200')) >= tmpDateObj; k++)
            {                       
                tmpDateObj = new Date (Date.parse(tmpDateObj) + 1000 * 60 * 60 * 24 * 7);
                tmpDateObj=new Date(tmpDateObj.getTime()+((1000 * 60 * 60)*((tmpDateObj.DST())?0:1)))
                Debug.push("\n" + tmpDateObj);  
                tmpDateObj=new Date(tmpDateObj.getTime()-((1000 * 60 * 60)*((tmpDateObj.DST())?0:1)))       
            }
            alert(Debug);
	</script>
 

Neue Beiträge

Zurück