Jonathan: Verständnisproblem bei Code

Beitrag lesen

Hallo,

ich verstehe nicht ganz, wie du das meinst, magst du mir das erklären? In Selfhtml lassen sich auch keine Funktionen zu den Kalenderwochen finden.

Stimmt. Da hab ich wohl Javascript mit PHP verwechselt. Folgendes hab ich zusammengebastelt. Scheint auch zu funktionieren, wobei ich mir da nicht sicher bin wie sich das ganze bei verschiedenen Zeitzonen, Sommerzeit usw. verhält.

  
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">  
<html>  
  <head>  
    <title>Test</title>  
  </head>  
  <body>  
  <script type="text/javascript">  
  var day = new Date();  
  day.setDate(1); //erster Tag des Monats  
  document.write("Der erste Tag dieses Monats:" + day.toLocaleString());  
  document.write("<br> Kalenderwoche:" + KalenderWoche(day));  
  day.setMonth(day.getMonth()+1); //erster Tag des nächsten Monats  
  day = new Date(day - 24*60*60*1000); //Minus 1 Tag  
  document.write("<br>Der letzte Tag dieses Monats:" + day.toLocaleString());  
  document.write("<br> Kalenderwoche:" + KalenderWoche(day));  
  
  
  function KalenderWoche(day) {  
  //teilweise aus dem Internet zusammengebastelt. Keine Ahnung, wie das Funktioniert. Find ich sehr schade, dass JS keine eingebaute Funktion zu haben scheint.  
  Datum = new Date(day);  
  var tag = Datum.getDay(); if (tag == 0) tag = 7;  
  var d = new Date(2004,0,1).getTimezoneOffset();  
  Datum.setTime(Number(Datum) - (tag-1)*86400000);  
  var Jahr = Datum.getYear(); if (1900 > Jahr) Jahr +=1900;  
  var kw = 1;  
  if (new Date(Jahr,11,29) > Datum) {  
    var Start = new Date(Jahr,0,1);  
    Start = new Date(Number(Start) + 86400000*(8-Start.getDay()));  
    if(Start.getDate() > 4) Start.setTime(Number(Start) - 604800000);  
    kw = Math.ceil((Datum.getTime() - Start) /604800000);  
  }  
  return kw;  
}  
  
  </script>  
  </body>  
</html>  

Jonathan