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.
codice:
$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
Grazie per l'aiuto