Buonasera a tutti, sono nuovo di PHP e mi trovo davanti ad una cosa per cui stò diventando matto.
Devo visualizzare a video un calendario, quindi far partire il conteggio dei giorni dal lunedì prima del 1 primo del mese considerato e farlo finire la domenica dopo l'ultimo giorno.
Stò utilizzando date('w',$giorno) per sapere in quale giorno della settimana sono e comportarmi di conseguenza.
Il problema è il mese di marzo, non so per quale motivo tutti i mesi di marzo (e solo in quelli) il conteggio finisce il sabato e non la domenica.
Di seguito allego il codice, non viene visualizzata la tabella ma passo tutto ad un javascript che poi mi deve riempire un div in un'altra pagina.
Grazie per l'aiutocodice:$valore.="<table cellspacing=\"0\" cellpadding=\"0\" style=\"width:560px;text-align:left;\" class=\"testo\">"; if($_GET["t"]==0){ $valore.=vistaMese(); } else { $valore.=vistaSettimana(); } $valore.="</table>"; echo "<script type=\"text/javascript\">\r\n"; echo "parent.pag.div_agenda.innerHTML='".$valore."';\r\n"; echo "</script>"; //FUNZIONI //VISTA MESE function vistaMese(){ $val ="<tr>"; $val.="<td class=\"tCaleM\">Lunedì</td>"; $val.="<td class=\"tCaleM\">Martedì</td>"; $val.="<td class=\"tCaleM\">Mercoledì</td>"; $val.="<td class=\"tCaleM\">Giovedì</td>"; $val.="<td class=\"tCaleM\">Venerdì</td>"; $val.="<td class=\"tCaleM\">Sabato</td>"; $val.="<td class=\"tCaleM\">Domenica</td>"; $val.="</tr>"; $mese=$_GET["m"]+1; $anno=$_GET["a"]; $giorno=strtotime($anno."-".$mese."-1"); $gds=date('w',$giorno)-1; if($gds==-1) $gds=6; $giorno=mktime(0,0,0,$mese,1-$gds,$anno); $ultimo=mktime(0,0,0,$mese+1,1,$anno); $gds=(8-date('w',$ultimo))%7; $ultimo=mktime(0,0,0,$mese+1,$gds,$anno); $i=1; while($giorno<=$ultimo){ $val.=scriviGiornoMese($giorno, $mese); $giorno+=86400; if($i%7==0) $val.="</tr><tr>"; $i++; } $val.="</tr>"; return $val; } //CELLA DELLA TABELLA function scriviGiornoMese($giorno, $mese){ $classe="cellaCale"; if ($mese!=(int)date('m',$giorno)) $classe="cellaCaleD"; $val="<td class=\"".$classe."\">"; $val.=(int)date('d', $giorno); $val.="</td>"; return $val; } //FINE FUNZIONI

Rispondi quotando