PHP Kalender zählt nicht bis 31

isaack

Mitglied
Hallo zusammen,

so langsam bin ich ein wenig am verzweifeln. Ich bin gerade dabei einen Dienstplan zu schreiben und dazu soll immer der Monat angezeigt werden.
Das Funktioniert auch ohne Probleme. Nur Monate die mehr als 30 Tage haben, werden nur bis 30 gezählt und nicht weiter.

hier mal das was ich bis jetzt geschrieben habe:

PHP:
<?php
$timestamp = mktime(0,0,0, date("m", time() ),date("d", time() ), date("Y", time() ));
$start = mktime(0,0,0, date("m", $timestamp),1, date("Y", $timestamp));
$ende = mktime(0,0,0, date("m", $timestamp), date("t", $timestamp), date("Y", $timestamp));
   if(!empty($_GET['vor'])){
     $timestamp = mktime(0,0,0, date("m", time() )+$_GET['vor'],1, date("Y", time() ));
     $start = mktime(0,0,0, date("m", $timestamp),1, date("Y", $timestamp));
     $ende = mktime(0,0,0, date("m", $timestamp),date("t", $timestamp), date("Y", $timestamp));
   }
   if(!empty($_GET['zurueck'])){
     $timestamp = mktime(0,0,0, date("m", time() )-$_GET['zurueck'],1, date("Y", time() ));
     $start = mktime(0,0,0, date("m", $timestamp)-$_GET['zurueck'],1, date("Y", $timestamp));
     $ende = mktime(0,0,0, date("m", $timestamp)-$_GET['zurueck'], date("t", $timestamp), date("Y", $timestamp));
   }
$ender = $ende;
$starr= $start;

echo '
<form method="post" action="">
   <table border="1px" width="100%">
     <tr>';


$us = db_query("SELECT uid,nickname FROM ".$db_prefix."_userdaten WHERE status = '1' ");
$dienstzahl = 0;
while($user = mysqli_fetch_array($us)){
   echo '
     <td>'.$user['nickname'].'<br>
       <table>
       ';
       for($start = $start; $start <= $ende; $start = $start+(60*60*24)){
         $wochentag = wochentag($start);
         $dienstzahl++;
         if($wochentag == 'Samstag' OR $wochentag == 'Sonntag'){ $bgcolor = '#FFFFFF';}else{ $bgcolor = '';}
         echo '
         <tr bgcolor="'.$bgcolor.'">
           <td>'.date("d.m.Y", $start).' '.$wochentag.'</td>
           <td>
             <select name="dienst'.$dienstzahl.'">';
               $ab = mysqli_fetch_array(db_query("SELECT dienst FROM ".$db_prefix."_dienstplan WHERE datum = '".$start."' AND uid ='".$user['uid']."' "));
               $di = db_query("SELECT id,name FROM ".$db_prefix."_dienstzeiten ");
               while($dienst = mysqli_fetch_array($di)){
                 echo '<option value="'.$user['uid'].'-'.$start.'-'.$dienst['id'].'"';
                   if($dienst['id'] == $ab['dienst']){ echo 'SELECTED';}
                 echo '>'.$dienst['name'].'</option>';
               }
             echo '       <option value="0">Frei/Urlaub</option>
             </select>
           </td>
         </tr>
         ';
       }
       echo '
       </table>
     </td>';
   $start = $starr;
   $ende = $ender;
}



echo '</tr></table>
     <center>
     <input type="hidden" name="zahl" value="'.$dienstzahl.'">
     <input type="submit" name="dienstplan_speichern" value="Dienstplan Speichern">
     </center>
   </form>';

if(empty($_GET['vor'])){
   $vor = 1;
}else{
   $vor = $_GET['vor']+1;
}

if(empty($_GET['zurueck'])){
   $zurueck = 1;
}else{
   $zurueck = $_GET['zurueck']+1;
}
echo '
   <center>
   <input type="button" onclick="window.location.href = \'?content=/administration/dienstplan/erstellen&zurueck='.$zurueck.'\';" value="Monat zur&uuml;ck">
   &nbsp;&nbsp;
   <input type="button" onclick="window.location.href = \'?content=/administration/dienstplan/erstellen\';" value="Aktueller Monat">
   &nbsp;&nbsp;
   <input type="button" onclick="window.location.href = \'?content=/administration/dienstplan/erstellen&vor='.$vor.'\';" value="Monat vor">
   </center>';

vielleicht kann mir einer von euch sagen, warum der nicht bis 31 zählt sondern immer nur bis 30.

Danke schonmal für die hilfe.
 
habe es gerade hinbekommen.
Habe Zeile 32 so gelöst:
PHP:
for($start = $start; $start <= $ende; $start = mktime(0,0,0, date("m", $start),date("d", $start)+1, date("Y", $start) )){

verbesserungsvorschläge sind aber gern gesehen oder tips und hinweiße.
 

Neue Beiträge

Zurück