Biker: Funktion kommt mit Monatswechsel nicht klar

Beitrag lesen

Es kommt darauf an, was Du ausrechnen willst. (alles lesen)

Hallo Texter,

den Thread kenne ich. Ist auch durchaus lesenswert. Für meinen Fall aber nicht wirklich relevant. Ich kann selbst mit den beiden Zeitsprüngen pro Jahr noch ganz gut leben.

Mir schwebt eine Lösung in folgendem Stil vor:

  
function datesel($name,$default,$low,$high,$step)  
{  
      if ($high < $low)  
     { /* funktioniert natürlich nicht mehr bei Sprüngen über 2 Monatsgrenzen hinweg.  
          Könnte man wohl eine zusätzl. Kontrolle einbauen. Für meinen Zweck aber derzeit unnötig.*/  
          $low=$alt_low;  
          $high=$alt_high;  
          $lastdayinmonth = strftime("%d", mktime(0, 0, 0, date("m", time()), 0, date("Y", time())));  
          $high=$high+$lastdayinmonth;  
     }  
     echo("<SELECT NAME=\"$name\">");  
     for ($i=$low;$i<=$high;$i+=$step)  
     {  
          if  (($alt_high < $alt_low) && ($i > $lastdayinmonth))  
          {  
               $i=1;  
               $high=$alt_high;  
          }  
          if ($i < 10)  
          {  
               $i=sprintf("%02d", $i);  
          }// 2-stellig  
  
          if ($i == $default)  
          {  
               echo("\n\t\t\t<OPTION VALUE=\"".$i."\" SELECTED>".$i."</OPTION>\n");  
          }  
          else  
          {  
               echo("\n\t\t\t<OPTION VALUE=\"".$i."\">".$i."</OPTION>\n");  
          }  
     }  
     echo("</SELECT>");  
}  

Leider komme ich mit meinem if-Statement aber zu spät für die for-Schleife. Dasselbe gilt wohl für eine while-schleife.

Aber diese Lösung wäre (für meinen Zweck) etwas universeller. Wenn sie funktionierte. ??

Vg, Biker