Ankündigung

Einklappen
Keine Ankündigung bisher.

Wochentage ausgeben

Einklappen

Neue Werbung 2019

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

  • Wochentage ausgeben

    Hallo liebe com,

    wie kann ich es in PHP realisieren, die Wochentage auzugeben welche innerhalb einer Zeitspanne liegen? Die Zeitspanne wird durch zwei date
    Formate (date1 - date2) aus der DB definiert.

    So ungefär: echo alle date('w') zwischen date1 und date2


  • #2
    Ich mach das meistens so, dass ich die beiden Daten (Datums) ins Unix-Format wandle, wenn sie das nicht eh schon sind und dann so fortfahre:

    PHP-Code:
    <?php
    $weekday 
    = array("Sonntag""Montag", ..., "Samstag");
    for (
    $i $startDate$i <= $endDate$i += 24*60*60) {
      print 
    $weekday[date('w'$i)] . '
    '
    ;
    }
    ?>
    Wobei es auch die Möglichkeit mit set_locale automatisch die Wochentag-Namen zu holen. Dazu siehe Manual.

    Kommentar


    • #3
      Ich würde das erstmal in einen Timestamp umwandeln mittels der Funktion mktime() den Starttag ermitteln und dann bis zum Ende durchlaufen.

      Also das Datum zerlegen in seine Einzelheiten Tag Monat Jahr

      PHP-Code:
      <?php
      $date1 
      explode(".","11.11.2005");
      $date2 explode(".","24.12.2005");

      $date1mktime(0,0,0,$date1[1],$date1[0],$date1[2]);
      // das ist unser Starttag Faschingsbeginn
      $date2 mktime(0,0,0,$date2[1],$date2[0],$date2[2]);
      //das ist der letzte Tag Weihnachten

      setlocale(LC_TIME"ge","de_DE");

      while(
      $date1 <= $date2){
         echo 
      strftime("%A" $date1)."
      "
      ;
         
      $date1 += 3600*24;
      }
      ?>

      Kommentar


      • #4
        Hallo,

        und danke bisher. Beide Scripte funktionieren. Jedoch wird bei den benutzten Eigaben z.B.

        $date1 29.10.2005
        $date2 01.11.2005

        der Sonntag zweimal ausgegeben.

        1130536800 //Umgewandelter UNIX-Timestamp von $date1
        1130799600 //Umgewandelter UNIX-Timestamp von $date2

        @Script von Zergling und Fips
        Samstag
        Sonntag
        Sonntag
        Montag

        Abgesehen davon, das mir die Ausgaben reichen. Woran liegt das und wie kann ich das abstellen?

        MfG

        Kommentar


        • #5
          Würde ich halb und halb von Mysql und PHP berrechnen/liefern lassen
          PHP-Code:
          <?php
          // query: SELECT date1, DATEDIFF(date1,date2) as anzahl FROM ...
          // $row = mysql_fetch_array($result);
          $row = array(); $row['date1'] = '2005-10-26'$row['anzahl'] = '7';


          $dStart explode('-'$row['date1']);

          for(
          $i=0$i<$row['anzahl']; $i++) {
              
          $cDate mktime(1,0,0$dStart[1], $dStart[2]+$i$dStart[0]);
              echo 
          date('d.m.Y (D)'$cDate), "
          \n"
          ;
          }
          ?>

          Kommentar


          • #6
            genau da liegt mein Problem.

            Ich kann wohl nur auf PHP zurückgreifen, da es in mysql keinen Befehl gibt, der die Wochentage zwischen date1 und date2 berechnen/ausgeben kann.

            Mal zum Sachverhalt:
            Ich bin gerade an einem Event Kalender bei und dort gibt es einmalige und mehrmalige Events. Die Zeitspanne der Einmaligen wird mit date1 - date1 und die mehrmaligen mit date1 - date2 eingetragen. Jedes date1 und date2 natürlich in separaten DB Spalten (Datentyp -> Date). Dazu können die mehrmaligen Events öfters in der Woche laufen. z.B. jeden Mo und Di oder nur jeden Do oder oder ... dazu sind 7 weitere Felder in der DB angelegt worden. (von mo - so) Welche beim stattfinden mit einer 1 andernfalls mit einer 0 versehen sind. Die einmaligen werden mit einer 1 oder 0 in einem anderen Feld markiert. Bisher logisch.

            Nun ist es aber so, der User gibt date1 und date2 ein (über ein Formular) um alle Events innerhalb dieser Zeitspanne angezeigt zu bekommen. Das funktioniert auch.

            Geht der vom User gewählte Zeitraum >= 7 Tage sind alle Wochentage enthalten und es können getrost alle Events angezeigt werden. Ist der Zeitraum aber kleiner und beinhaltet nur z.B. den Montag und Dienstag, werden ja auch alle mehrmaligen Events angezeigt welche auch in diesem Zeitraum liegen aber z.B. nur am Do stattfinden. Und das soll verhindert werden.

            Deswegen hab ich mir gedacht, nach dem der User date1 und date2 eingegeben hat, wird errechnet ob es mehr als 7 Wochentage sind, dann geht es gleich zur mysql_query andernfalls werden die Wochentage "ausgegeben" um die mehrmaligen Events anzuzeigen welche eine 1 bei den "ausgegebenen" Wochentagen in der Spalte der DB haben. Und dabei bin ich jetzt....

            Ich hoffe du konntest folgen... ist nicht gerade die Logik der Logik aber wüsste es nicht anders zu realisieren. Das ist mein erstes Projekt mit php und mysql....

            Kommentar


            • #7
              Na mal sehen, ob ich es halbwegs verstanden habe
              PHP-Code:
              <?php
              $dStart 
              '2005-10-27';
              $days 4;

              // ab hier nur wenn $days < 7

              // Namen der Bit-Felder in der Datenbank
              $fieldnames = array(0=>'So''Mo''Di''Mi''Do''Fr''Sa');

              // ersten Wochentag ermitteln
              $dStart explode('-'$dStart);
              $dayOfWeek = (int)date('w'mktime(1,0,0$dStart[1], $dStart[2], $dStart[0]));

              $where = array();
              for(
              $i=0$i<$days%7$i++) {
                  
              /* Debug */echo '

              Debug: i:'
              $i' -> index:', ($dayOfWeek+$i) % 7' -> Feld:'$fieldnames[($dayOfWeek+$i) % 7], "</p>\n";
                  
              $where[] = $fieldnames[($dayOfWeek+$i) % 7] . '=1';
              }

              /* Debug */echo '

              Debug: '
              print_r($wheretrue), "</p>\n";

              $where join(' OR '$where);
              echo 
              $where;
              ?>

              Kommentar


              • #8
                Nur mal so ein Vorschlag:
                Code:
                "
                SELECT * FROM tabelle
                WHERE ( ('$SucheVonDatum' <= date2) AND ('$SucheBisDatum' >= date1) )
                ORDER BY WEEKDAY(date1) < WEEKDAY(CURDATE()), WEEKDAY(date1)
                ";
                ...
                wobei dann $SucheVonDatum und $SucheBisDatum im "MYSQL_date_Format" vorliegen müssen!
                (wenn ich dich richtig verstanden habe...)
                ~dilemma~

                Kommentar


                • #9
                  Zitat von smartdragon
                  @Script von Zergling und Fips
                  Samstag
                  Sonntag
                  Sonntag
                  Montag
                  Das halte ich für einen Fehler in deinem Array, der die Wochentage enthält. Den Timestamp bei jedem Schleifendurchlauf um einen Tag (24*60*60 Sekunden) zu erhöhen produziert garantiert nicht 2x den Sonntag.

                  Kommentar


                  • #10
                    Japs bei mir kommt sowas heraus dabei

                    ...
                    Freitag
                    Samstag
                    Sonntag
                    Montag
                    Dienstag
                    Mittwoch
                    Donnerstag
                    Freitag
                    Samstag
                    Sonntag
                    Montag
                    ...

                    Wenn es aus einer DB ausgelesen wird , dann hat ja ein Event mehere verschiedene Termine.Also würde ich einfach beim einspeichern die Daten eintragen direkt und bei der Ausgabe werden dann x Felder als Link makiert wobei halt mehere den selben Inhalt haben.Also den selben Event.

                    Hier rennt noch ein Thread rum wo einer ein Tut für ein Kalender sucht , da habe ich ein Link zu einer KalenderKlasse gepostet , wo ich mir das mal eingebunden habe das mehere Tage farbig makiert werden.
                    Das Problem was ich da sehe das 1. nur 1 Kalender ausgegeben werden kann und 2. nur innerhalb des Monats die Tage farbig makiert werden.

                    Wäre zum Beispiel 1 Event vom 2.10 - 15.10 und der zweite Event vom 21.10 - 29.10 müsste man 2 Kalender einbauen Was nun nicht sonderlich effizient ist.
                    Also noch eine weitere Ausbau Möglichkeit das man mehere Tage einzeichnen kann pro Monat. Aber da heute Sonntag ist bin ich nun zu faul dafür

                    Kommentar


                    • #11
                      @Bruchpilot

                      du hast das vollkommen richtig verstanden, dabei einen Senkrechtstart mit Looping und weicher Landung hingelegt. Das ist genau was ich meinte. Auch sehr gut weitergedacht mit der Ausgabe der SQL-Anweisung. Das hätte ich so nicht bzw. mit viel mehr Zeit hinbekommen. Danke.

                      Ich habe jetzt noch die Diff. Berechnung der Usereingaben von date1 und date2 miteingebaut, so das $days autom. gesetzt und übergeben werden.

                      PHP-Code:
                      <?php
                      $date1 
                      $_REQUEST['year1']."-".$_REQUEST['month1']."-".$_REQUEST['day1'];
                      $date2 $_REQUEST['year2']."-".$_REQUEST['month2']."-".$_REQUEST['day2'];
                      $d1ex explode('-'$date1);
                      $d2ex explode('-'$date2);
                      $d1mk mktime(000$d1ex[1], $d1ex[2], $d1ex[0]); 
                      $d2mk mktime(000$d2ex[1], $d2ex[2], $d2ex[0]);
                      $diff $d2mk $d1mk;
                      $days round(($diff/60/60/24)); //Anzahl an Tage
                          
                      if ($days<7) {
                          echo 
                      $days//nur zum überprüfen
                          
                      }
                          else {
                          echo 
                      "es sind mehr als 7 Tage"//hier direkt zur mysql_query
                          
                      }
                      // ab hier nur wenn $days < 7
                      // Namen der Bit-Felder in der Datenbank
                      $fieldnames = array(0=>'So''Mo''Di''Mi''Do''Fr''Sa');

                      // ersten Wochentag ermitteln
                      $date1 explode('-'$date1);
                      $dayOfWeek = (int)date('w'mktime(1,0,0$date1[1], $date1[2], $date1[0]));

                      $where = array();
                      for(
                      $i=0$i<$days%7$i++) {
                      //   /* Debug */echo '

                      Debugi:', $i, ' -> index:', ($dayOfWeek+$i) % 7, ' -> Feld:', $fieldnames[($dayOfWeek+$i) % 7], "</p>\n";
                         $where[] = $fieldnames[($dayOfWeek+$i) % 7] . '
                      =1';
                      }

                      ///* Debug */echo '

                      Debug', print_r($where, true), "</p>\n";

                      $where = join(' 
                      OR ', $where); //$where an mysql_query übergeben
                      echo $where; // zum überprüfen
                      ?>
                      @dilemma
                      das ist auch ein guter Vorschlag, da weekday den Wochentag-Index zurück gibt. (kann ich etvl. noch gebrauchen)

                      @Zergling und Fips
                      das stimmt wirklich und ich kann mir das nicht erklären, außer wie Zergling schon sagte Array Problem. Wenn ich andere Tage z.B. (11.11.2005 - 24.12.2005 (Beispiel von Fips)) eingebe funktioniert das tadellos. Nur bei der Eingabe 29.11.2005 - 1.11.2005 nicht.

                      Ihr könnt das (wenn ihr mal wollt) unter:

                      http://clients.smartdragon.de/test/test.php

                      testen.

                      @Fips
                      genau Sonntag wir haben hier noch den Monatg frei (Reformationstag) deswegen kann ich hier noch was machen

                      Kommentar


                      • #12
                        $date1 = $_REQUEST['year1']."-".$_REQUEST['month1']."-".$_REQUEST['day1'];
                        ...
                        $date1 = explode('-', $date1);
                        $dayOfWeek = (int)date('w', mktime(1,0,0, $date1[1], $date1[2], $date1[0]));
                        Erst zusammen- und dann wieder auseinanderfriemeln ...das kannst Du Dir dann auch sparen

                        $d1ex = explode('-', $date1);
                        $d2ex = explode('-', $date2);
                        sogar zweimal auseinanderfriemeln ....

                        Kommentar


                        • #13
                          Das stimmt, wollte erstmal dass das alles funktioniert. Die Optimierungen kommen später. Aber danke für den Tipp, so denke ich daran :wink:

                          Kommentar


                          • #14
                            diese Berechung ist fehlerhaft, wenn date1 das Tag ist,
                            an dem die Uhr von 'Sommerzeit' auf 'Winterzeit' umgestellt wird.
                            Weil dieser Tag 25 Stunden hat!
                            Code:
                            while($date1 <= $date2){
                               echo strftime("%A" , $date1)."
                            ";
                               $date1 += 3600*24;   //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< !!!
                            }
                            ~dilemma~

                            Kommentar


                            • #15
                              Ich habe ein ähnliches Problem in meiner Kalender Klasse , ich kam durch deinen Beitrag darauf noch einen Kalender einzubauen wo man sich mehere Tage einfach einzeichnen lassen kann.

                              Also innerhalb eines Monats nur , dabei kommt es zu einen interessanten Effekt der mich krank macht. Und zwar beim Oktober :

                              Wenn ich sage färbe mal alles vom 22.10.2005 - 31.10.2005 ein dann färbt er alles vom 22.10.2005 - 30.10.2005 ein.

                              Andere Monate funktionieren prima hingegen in jedem Jahr nur der Oktober nicht, anders gesehen nun mal :

                              Nehmen wir uns nochmal den Oktober vor diesmal im Jahre 2007

                              also sagen wir färbe alles vom 22.10.2007 - 31.10.2007 aber hier färbt er nur noch vom 22.10.2007 - 28.10.2007
                              Er färbt dann immer einen Tag weniger ein , er geht runter das er nur noch bis zum 25.10.2007 einfärbt und das im Jahre 2010 aber nun kommt der Clou : im Jahre 2011 färbt er es wieder alles komplett ein.
                              Keine Ahnung was da los ist genau , das kuriose is ja das er alle anderen Monate macht soweit nur beim Oktober zickt er rum.

                              Hier mal wie ich das gelöst habe nun Oktober Bug existiert dennoch.

                              PHP-Code:
                              <?php
                              CLASS FromDayToDay extends Kalender{

                                var 
                              $AktuDatu = array(); // Array für die aktuellen Tag
                                
                              var $startDay// StartTag
                                
                              var $endDay;   // EndTag
                                
                              var $AktuDay;
                                var 
                              $dateS;
                                var 
                              $dateE;
                                
                              /******************************************************************************/

                                  
                              function FromDay1ToDay2($date=""){

                                      
                              /* Wenn kein Datum in Form eines Arrays übergeben wurde
                                         Fehlermeldung generieren und Script abbrechen ansonsten
                                         ein neues Array AktuDatu mit den Daten füllen zu weiteren
                                         Verarbeitung */

                                      
                              if(empty($date) OR !is_array($date)){
                                        echo 
                              "Keinen gültigen Zeitraum übergeben";
                                        echo 
                              "<pre>
                                           \$date =array(\"StartDatum1\" => \"EndDatum1\",
                                                        \"StartDatum2\" => \"EndDatum2\");
                                              </pre>"
                              ;
                                        DIE(
                              "Verarbeitung wurde abgebrochen !");
                                      }else{

                                         for(
                              $i 0;$i<count($date);$i++){
                                              
                              $this->AktuDatu[key($date)] = current($date);
                                              
                              next($date);
                                          }

                                      }

                                      
                              $this->setDayToCollorate();
                                      return 
                              $this->KalenderG($this->dateS[1],$this->dateS[2]);
                                  }

                              /******************************************************************************/

                                  
                              function setDayToCollorate(){

                                    
                              $this->dateS explode(".",key($this->AktuDatu));
                                    
                              $this->dateE  explode(".",current($this->AktuDatu));

                                    
                                    
                              $this->startDay mktime(0,0,0,$this->dateS[1]
                                                                  ,
                              $this->dateS[0]
                                                                  ,
                              $this->dateS[2]);

                                    
                              $this->endDay  mktime(0,0,0,$this->dateE[1]
                                                                 ,
                              $this->dateE[0]
                                                                 ,
                              $this->dateE[2]);
                                  }

                              /******************************************************************************/

                                 
                              function AktuellerTag($Tag,$Monat,$Jahr){
                                    
                              $LaufDatum $Tag.".".$Monat.".".$Jahr;
                                    
                              $this->AktuDay date("j.n.Y",$this->startDay);

                                    if(
                              $this->AktuDay == $LaufDatum){

                                      if(
                              $this->startDay $this->endDay){
                                         
                                          
                              // Von Sommer auf Winterzeit umstellen

                                          
                              if(date("I",mktime(0,0,0,$Monat,$Tag+1,$Jahr)) == 
                                                    
                              && $Monat == 10){
                                              
                              $this->startDay $this->startDay+3600*25;
                                          }else{
                                              
                              $this->startDay $this->startDay+3600*24;
                                          }
                                          
                                       }elseif(
                              $this->startDay == $this->endDay && next($this->AktuDatu)){
                                         
                              $this->setDayToCollorate();
                                       }

                                     
                              // Farbe für das Tabellenfeld im aktuellen Tag
                                     
                              return $this->MarkDayColor;
                                      
                                    }else{
                                      return 
                              "";
                                    }
                                  }

                              /******************************************************************************/

                              }// Klasse FromDayToDay schliessen
                              Die Kalender Klasse mal anbei damit du die anderen Methoden noch kennst:

                              PHP-Code:
                              <?php
                              /*******************************************************************************
                                                              Klasse Kalender
                              *******************************************************************************/
                              CLASS Kalender{
                                  
                              /**
                                  * Array für den Starttag
                                  */

                                  
                              var $Weekdays   = array(=>"Monday",
                                                              
                              "Tuesday",
                                                              
                              "Wednesday",
                                                              
                              "Thursday",
                                                              
                              "Friday",
                                                              
                              "Saturday",
                                                              
                              "Sunday");
                                                              

                                  
                              /**
                                  * Array für den Kalender Header
                                  */
                                  
                                  
                              var $Wochentage = array (=>"Mo",
                                                               
                              "Di",
                                                               
                              "Mi",
                                                               
                              "Do",
                                                               
                              "Fr",
                                                               
                              "Sa",
                                                               
                              "So");
                                                               
                                  
                              /**
                                  * Variablen für den Kalender setzen
                                  */
                                                               
                                  
                              var $TKopf;     // TabellenKopf Monate einzeichnen
                                  
                              var $KGrid;     // Kalender Grid Tage einzeichnen
                                  
                              var $KalenderG// Gesammter Kalender
                                  
                              var $AktuDatum// Aktuelles Datum
                                  
                                  /***************************************
                                  *          Farben für die Tabelle      *
                                  ***************************************/
                                  
                                  
                              var $TableColor             '#00CCCC'// Hintergrund Farbe der Tabelle
                                  
                              var $TableDeskColorBody     '#00FF00'// Farbe des Tabellenkopfes/Monat
                                  
                              var $FontColorHeader        '#000000'// Schrift Farbe für den Tabellenkopf
                                  
                              var $FontColorTD            '#000000'// Schrift Farbe der Tage 1- 31
                                  
                              var $MarkDayColor           '#00FF00'// Farbe des aktuellen Tages

                              /*******************************************************************************
                              Section KalenderHeader
                                  Kalender Kopf Mo Di ...
                              *******************************************************************************/

                                  
                              function KalenderHeader(){
                                    for(
                              $i 1;$i <= count($this->Wochentage);$i++){
                                      
                              $this->TKopf .= "<td align='center'
                                                           width='15'
                                                           height='15'
                                                           bgcolor='"
                              .$this->TableDeskColorBody."'
                                                           style='font-size:10pt;
                                                                  color:"
                              .$this->FontColorHeader.";
                                                                  border:1px solid;
                                                                  padding:0px;'>"
                                                          
                              .$this->Wochentage[$i]."</td>";
                                    }
                                    return 
                              $this->TKopf."<tr>";
                                  }
                              /*******************************************************************************
                              Section Aktueller Tag
                                  Aktuellen Tag ermitteln und hintergrundfarbe zurückgeben
                              *******************************************************************************/

                                  
                              function AktuellerTag($Tag,$Monat,$Jahr){
                                    
                              $LaufDatum $Tag.".".$Monat.".".$Jahr;

                                    if(
                              $this->AktuDatum == $LaufDatum){
                                      return 
                              $this->MarkDayColor;
                                      
                              // Farbe für das Tabellenfeld im aktuellen Tag
                                    
                              }else{
                                      return 
                              "";
                                    }
                                  }
                                  
                                  function 
                              termine($tag,$monat,$jahr){
                                    
                              //Datenbankanbindung herstellen
                                    //ergebnisse abrufen und als link kennzeichnen lassen wenn ein Eintrag
                                    //gefunden wurde
                                    //ansonsten nur den $tag zurückgeben lassen wieder.
                                  
                              }
                                  
                              /*******************************************************************************
                              Section KalenderGrid
                                  Kalender Körper für die einzelenen Tage einzeichen
                              *******************************************************************************/

                                  
                              function KalenderGrid($Monat,$Jahr=""){

                                    
                              $MonatsTage 1;
                                    
                              $tag 1// LaufzeitVariable für den aktuellen Monatstag
                                    
                                    // Ersten Tag ermitteln
                                    
                              for($i=$i <= 7;$i++){

                                        
                              /* wenn der aktuelle wochentag (voll ausgeschrieben englische Namen
                                           gleich dem aktuellen Wert des Array Elements ist brich die Schleife
                                           ab $i bleibt derweil erhalten*/
                                           
                                        
                              if(date("l"mktime(0,0,0,$Monat,1,$Jahr)) == $this->Weekdays[$i]){
                                              break;
                                        }else{
                                              
                              // ansonsten zeichne ein leeres Tabellenfeld
                                              
                              $this->KGrid .= "<td width='10' height='10'></td>";
                                        }
                                    }

                                    
                              /*************************************************************************
                                    2. Zeile in der Kalender Tabelle einzeichnen
                                    jede weitere Zeile wird zu der Variablen KGrid hinzugefügt
                                    Jeder Tag der eingezeichnet wird wird überprüft ob es der aktuelle Tag ist
                                    *************************************************************************/

                                    /*Solange wie $tag kleiner ist als die Azahl der Tage des Monats
                                      date("t") gibt die Anzahl der Monate zurück
                                      $i = 1-7 */
                                      
                                    
                              while($tag <= date("t",mktime(0,0,0,$Monat,1,$Jahr))){
                                         if(
                              $i%== 0){
                                           
                              // Wenn der Tag Sonntag ist $i = 7 , $i = 14 , $i = 21 ...
                                              
                              $this->KGrid .= "<td align='right'
                                                                   width='10'
                                                                   height='10'
                                                                   bgcolor='"
                              .
                                                                       
                              $this->AktuellerTag($tag,$Monat,$Jahr)
                                                                   .
                              "'style='padding:0px;
                                                                             border:1px solid;
                                                                             font-size:8pt;
                                                                             color:"
                              .$this->FontColorTD."'>".
                                                                       
                              $tag
                                                                   
                              ."</td></tr>";
                                              
                              $i++;
                                              
                              $tag++;
                                          }else{
                                            
                              // von Montag bis Samstag durchlaufen und Tage einzeichen
                                            
                              $this->KGrid .= "<td align='right'
                                                                 width='10'
                                                                 height='10'
                                                                 bgcolor='"
                              .
                                                                      
                              $this->AktuellerTag($tag,$Monat,$Jahr)
                                                                 .
                              "'style='padding:0px;
                                                                           border:1px solid;
                                                                           font-size:8pt;
                                                                           color:"
                              .$this->FontColorTD."'>".
                                                                      
                              $tag
                                                                 
                              ."</td>";
                                            
                              $i++;
                                            
                              $tag++;
                                          }
                                      }

                                    
                              /* Ausgabe der Zeit in deutsch */
                                    
                              setlocale(LC_TIME,'de_DE','ge');

                                    
                              // Hier wird nur der Monat eingefügt noch hinter dem Kalender Grid
                                    
                              return $this->KGrid.'<tr><td colspan="7"
                                                                 align="center"
                                                                 bgcolor="'
                              .$this->TableDeskColorBody.'"
                                                                 style="padding:0px;
                                                                        border:1px solid;
                                                                        font-size:8pt;
                                                                        color:'
                              .$this->FontColorHeader.';"
                                                                 height="10"
                                                                 width ="100">'
                              .
                                                                   
                              strftime("%B"mktime(0,0,0,$Monat,1,$Jahr))."/".$Jahr
                                                                 
                              .'</td></tr>';
                                    }
                              /*******************************************************************************
                              Section Kalender Gesammt
                                Der Kalender wird hier zusammen gefügt
                                [Tabelle]-Kalender Header + Kalender Grid-[/Tabelle]
                                Danach werden die Variablen Kalender Grid und KalenderKopf(Tkopf) wieder geleert
                                sonst zeigt er wenn man sich einen weiteren Monat ainzeigen lassen  will nochmal
                                den ersten Monat extra an .
                              *******************************************************************************/

                                  
                              function KalenderG($Monat,$Jahr=""){

                                      if(empty(
                              $Jahr)){
                                        
                              $Jahr date("Y");
                                      }

                                      
                              $this->KalenderG '<table style="border:1px solid;
                                                                        padding:0px 2px 0px 2px;"
                                                                 height="145"
                                                                 width ="145"
                                                                 bgcolor="'
                              .$this->TableColor.'"
                                                                 background="">
                                                              <tr>'
                              .
                                                                 
                              $this->KalenderHeader().
                                                                 
                              $this->KalenderGrid($Monat,$Jahr).
                                                             
                              '</tr></table>';
                                      
                              $this->KGrid '';
                                      
                              $this->TKopf ''
                                      return 
                              $this->KalenderG;
                                  }
                              }
                              // Klasse Kalender schliessen
                              ?>
                              Der Oktober Fehler mal hier demonstriert beim Aufruf der Klasse :

                              PHP-Code:
                              <?php
                              $Kalender 
                              = new FromDayToDay;
                              $date = array("1.10.2007" => "4.10.2007",
                                            
                              "10.10.2007" => "15.10.2007",
                                            
                              "17.10.2007" => "19.10.2007",
                                            
                              "22.10.2007" => "31.10.2007");
                              echo 
                              $Kalender->FromDay1ToDay2($date);

                              $Kalender2 = new FromDayToDay;
                              $date = array("1.1.2007" => "4.1.2007",
                                            
                              "10.1.2007" => "15.1.2007",
                                            
                              "17.1.2007" => "19.1.2007",
                                            
                              "22.1.2007" => "31.1.2007");
                              echo 
                              $Kalender2->FromDay1ToDay2($date);

                              $Kalender2 = new FromDayToDay;
                              $date = array("1.3.2007" => "1.3.2007",
                                            
                              "10.3.2007" => "15.3.2007",
                                            
                              "17.3.2007" => "19.3.2007",
                                            
                              "22.3.2007" => "31.3.2007");
                              echo 
                              $Kalender2->FromDay1ToDay2($date);
                              ?>
                              Das sieht dann ca so aus alles :

                              http://139.18.193.65/Kalender/Kalender_Klasse.php

                              Frag mich bitte nicht warum er den Oktober nicht macht , ob es ein Bug innerhalb der Zeitfunktion ist oder ich einen Fehler gemacht habe , ich hab es x mal durchgetestet , mehere Jahre abe der Oktober arbeitet nur zu gewissen Jahren richtig.
                              Beim normalen Kalender allerdings richtig , er hat Probleme damit den Tag als Timestamp weiter hochzuzählen. So das er manchmal schon am 29.10 stoppt oder am 25.10 schon.

                              Wo ich es eben lese könnte dieses mit der Umstellung zur Sommer / Winterzeit zu tun haben , doch übersteigt dieses nun meine Kentnisse.

                              Kommentar

                              Lädt...
                              X