Autor Zpráva
RastyAmateur
Profil
Dobrý den,

chci poprosit o radu. Snažím se udělat si vlastní kalendář, avšak nefunguje mi cyklus "for" tak, jak bych potřeboval. Ona nejspíš bude chyba jinde, nevím...

    $theMonth = date("n",strtotime($time));
    $theYear = date("Y",strtotime($time));
    $theDay = date("j",strtotime($time));
    $firstDayOfMonth = date("w", mktime(0,0,0,$theMonth,1,$theYear));
    $lastDayOfMonth = cal_days_in_month(CAL_GREGORIAN, $theMonth, $theYear);   
    
    for($i=1;$i<$firstDayOfMonth;$i++){
      echo '<div class="monthday">No day</div>';
      }
    for($i=$firstDayOfMonth;$i<$theDay;$i++){;
      echo '<div class="monthday">'.$i.'</div>';
      }
    echo '<div class="monthday">Today</div>';
    for($i=$theDay+1;$i<=$lastDayOfMonth;$i++){
      echo '<div class="monthday">'.$i.'</div>';
      }

Nevím jak to vysvětlit - class .monthday je udělaná tak, aby zaírala 1/7 stránky. Proto musím udělat, aby první kolonka byla pondělí. Chci si zjistit, kolikátý je v týdnu první den z měsíce. Udělám tam prázdná políčka. Poté vypisuji všechna políčka od začátku měsíce do dneška, pak vypíšu dnešek a zase vše až do konce měsíce...
$time = $_GET["time"] ve tvaru YYYY-MM-DD

Doufám, že jsem to dostatečně popsal. Někde je chyba, nevypisuje to správně...

Děkuji, Rasty
mimochodec
Profil
RastyAmateur:
Doufám, že jsem to dostatečně popsal.

Svou úvahu víceméně ano, výsledek ani ne. Jak vypadá vytvořené html pro měsíc, který začíná pondělkem? A jak pro jiný den?
bestik_63
Profil
pro aktuální datum:
$firstDayOfMonth = date("w", mktime(0,0,0,$theMonth,1,$theYear));    //pátek = 5
$theDay = date("j",strtotime($time));                                               //aktuální den = 2

for($i=1;$i<$firstDayOfMonth;$i++){                                              //vypíše divy od 1 do 4
      echo '<div class="monthday">No day</div>';
      }
    for($i=$firstDayOfMonth;$i<$theDay;$i++){;                                //vypsal by divy od 5 do 2 takže nevypíše nic
      echo '<div class="monthday">'.$i.'</div>';
      }
    for($i=$theDay+1;$i<=$lastDayOfMonth;$i++){                           //tady to už asi vypíše divy od 3 do konce měsíce
      echo '<div class="monthday">'.$i.'</div>';
      }

asi to není to co má dělat, ale ani netuším co to mělo dělat :-) Doufám, že jsem se trefil.
RastyAmateur
Profil
Vše v pořádku. Nakonec se mi podařilo chybu najít a opravit a na závěr jsem stejně celý kód uplně předělal :) Děkuji všem za ochotu :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0