Problem mit KW Auswahl

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit KW Auswahl

    Hi Mädels und Jungs,

    ich habe ein Problem und zwar habe ich einen Kalender erstellt, der immer eine Woche anzeigt. Leider funktioniert die KW auswahl für die Jahre 2008 und 2007 nicht, für alle anderen Jahre geht das könnt ihr mir helfen?
    Ich poste mal das script meiner 2 Dateien

    Datei Date.php
    PHP-Code:
    <?php
    // aktuelle Zeit
    $today time();
    $datum getdate($today);

    // für Wochentagsanzeige
    $days = Array("Montag""Dienstag""Mittwoch""Donnerstag""Freitag""Samstag""Sonntag");

    // aktuelles Datum
    $tag date("j");
    $month date("n");
    $year date("Y");

    //aktueller Tag
    $daymaker mktime(000$month$tag$year);     //Unixzeit aktueller Tag
    $day2 date("d.m.Y"$daymaker);            //heutige Datum                
    $today_var getdate($daymaker);                    
    $thisday $today_var[wday];                 //Tag der Woche
    $kw date("W");                    //aktuelle KW

    //echo $day2;
    if($day == "Mon"){$day "Montag";}
    if(
    $day == "Tue"){$day "Dienstag";}
    if(
    $day == "Wed"){$day "Mittwoch";}
    if(
    $day == "Thu"){$day "Donnerstag";}
    if(
    $day == "Fri"){$day "Freitag";}
    if(
    $day == "Sat"){$day "Samstag";}
    if(
    $day == "Sun"){$day "Sonntag";}

    // Anzahl Kalenderwochen für Auswahlmenu
    if($jahrwahl != "")
    {
        
    $ende_jahr mktime(0,0,0,12,31,$jahrwahl);
        
    $letzte_kw date("W",$ende_jahr);
    }
    else
    {
        
    $ende_jahr mktime(0,0,0,12,31,$year);
        
    $letzte_kw date("W",$ende_jahr);
        
    $jahrwahl $year;
    }

    // Jahre für Auswahlmenu
    $year_v $jahrwahl-1;
    $year_n $jahrwahl+1;


    // falls Formular nicht abgeschickt wurde, wird aktuelle Woche und Jahr angezeigt
    if($kwwahl == "")
    {
        
    $kwwahl $kw;
    }
    if(
    $jahrwahl =="")
    {
        
    $jahrwahl $year;
    }

    // andere Woche / Jahr inklusive Berücksichtigung von Schaltjahren
    for($a=0$a<=6$a++)
    {
        
    $erster mktime(0,0,0,1,1,$jahrwahl); 
        
    $wtag date('w',$erster);
        if (
    $wtag <= 4)   // Donnerstag oder kleiner: auf den Montag zurückrechnen.
        
    {
            
    $montag mktime(0,0,0,1,1-($wtag-1),$jahrwahl);
        } 
        else   
    // auf den Montag nach vorne rechnen.
        
    {
            
    $montag mktime(0,0,0,1,1+(7-$wtag+1),$jahrwahl); 
        } 
        
    $firstmonday $montag;
        
    $mon_monat date('m',$firstmonday);
        
    $mon_jahr date('Y',$firstmonday); 
        
    $mon_tage date('d',$firstmonday); 
        
    $tage = ($kwwahl-1)*7
        
    $mondaykw mktime(0,0,0,$mon_monat,$mon_tage+$tage,$mon_jahr); 

        
    $first_day $mondaykw $a 86400;

        
    $tag_x[] = date("d.m.Y"$first_day);
    }
    ?>
    Datei oben.php

    PHP-Code:
    <?
    include ("date.php");
    ?>
    <script language="JavaScript" type="text/JavaScript">
    <!--
    function MM_jumpMenu(targ,selObj,restore){ //v3.0
      eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0;
    }
    //-->
    </script>

    <div align="center"><font size="5"><strong> Wochenplaner<br>
      </strong></font> </div>
      <?
    //echo $letzte_kw;
    //echo $kwwahl."<br>";
    //echo $jahrwahl."<br>";
    ?>
    <form name="form1" method="post" action="<? echo $PHP_SELF; ?>">
      <p align="center">Woche: 
        <select name="kw_select" onChange="MM_jumpMenu('self',this,0)">
          <?php
            
    // Wochen-Auswahl
            
    if($kwwahl != "" AND $kwwahl != $kw)
            {
                for(
    $i=1$i<=$letzte_kw;  $i++)
                {
                    echo 
    "<option value=index.php?kwwahl=".$i."&jahrwahl=".$jahrwahl."";
                    echo (
    $i == $kwwahl)?" SELECTED":"";
                    echo 
    ">KW ".$i."</option>\n";
                }
            }
            else
            {
                for(
    $i=1$i<=$letzte_kw$i++)
                {
                    echo 
    "<option value=index.php?kwwahl=".$i."&jahrwahl=".$jahrwahl."";
                    echo (
    $i == $kw)?" SELECTED":"";
                    echo 
    ">KW ".$i."</option>\n";
                }
            }
            
    ?>
        </select>
        &nbsp;&nbsp;Jahr: 
        <select name="jahr_select" onChange="MM_jumpMenu('self',this,0)">
          <?php
            
    // Jahres-Auswahl
            
    if($jahrwahl != "" AND $jahrwahl != $year)
            {
                
                for ( 
    $x=$year_v$x<=$year_n$x++ )
                {
                    echo 
    "\t<option value=index.php?kwwahl=".$kwwahl."&jahrwahl=".$x."";
                    echo (
    $x == $jahrwahl)?" SELECTED":"";
                    echo 
    ">$x\n";
                }
            }
            else
            {
                for ( 
    $x=$year_v$x<=$year_n$x++ )
                {
                    echo 
    "\t<option value=index.php?kwwahl=".$kwwahl."&jahrwahl=".$x."";
                    echo (
    $x == $year)?" SELECTED":"";
                    echo 
    ">$x\n";
                }
            }
            
    ?>
        </select>
        &nbsp; 
        <input type="button" name="submit2" value="Heute" onClick="self.location.href='index.php'">
        &nbsp; 
        <input type="button" name="submit_new" value="eintragen" onClick="self.location.href='data/new.php'">
      </p>
    </form>
    Hoffe ihr könnt etwas finden.

    Gruß

    Ackrite

  • #2
    Ich habe mir deine Problembeschreibung zugegeben nicht komplett durchgelesen, aber ich weise vorsorglich schonmal darauf hin, dass die date-Funktion mit W als erste Kalenderwoche die ausgibt, die als erstes komplett in einem Jahr ist. In Deutschland (und meines Wissens allen deutschsrachigen Ländern) ist die erste Kalenderwoche aber die, die als erstes mindestens 4 Tage in einem Jahr hat. Dadurch kann es schonmal vorkommen, dass es in einem Jahr zweimal die "erste" Kalenderwoche gibt (wie dieses): Einmal am Anfang und einmal am Ende. Mit den str?time-Funktionen solltest du mit V die korrekte Wochennummer bekommen.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Ich bin leider nocht nicht sooo der crack in PHP.

      Was müsste ich denn jetzt ändern?

      Kommentar


      • #4
        Wenn ich mir mit
        $kw= date ("W");
        echo $kw;

        die Woche ausgeben lasse wird mir die korrekte KW ausgegeben. Nur kann ich im Popdownmenü keine KW auswählen dort steht beim Jahr 2008
        immer nur eine 1 beim Jahr 2009 funktioniert es reibungslos.

        Das kann dann ja nicht so wirklich das Problem sein......

        Kommentar


        • #5
          Stimmt. Hab Blödsinn erzählt. Das ist schon lange nicht mehr so

          Trotzdem würde ich mit den str?time-Funktionen arbeiten. "+1 year" ist halt schon Praktisch
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Irgendwie ist mir nicht klar wie du das meinst

            An welcher Stelle muss ich denn den Quelltext überarbeiten???

            Kommentar

            Lädt...
            X