Adesso il echo $giorno mi da la data coretta come stringa e ho modificato il for perche prenda $giorno il primo giro ma cmq non funziona nel caso di data_impostata==1. e strlen restituisce 10 che e coretto.codice:if($data_impostata==0){ $giorno=date("d-m-Y"); $month=date("m"); $year=date("Y"); } if($data_impostata==1){ $giorno=trim($_POST[day]); $month=trim($_POST[month]); $year=trim($_POST[year]); $giorno=$giorno."-".$month."-".$year; $var=strlen($giorno); echo $var; echo $giorno; } for($c=1;$c<7;$c++){ if($c==1){ $day[$c]=$giorno+1; $day[$c]=$day[$c]."-$month-$year"; } else{ $day[$c]=$day[$c-1]+1; $day[$c]=$day[$c]."-$month-$year"; } if($day[$c]>=28){ switch($month){ case 1: case 3: case 5: case 7: case 8: case 10://mesi con 31giorni (apparte dicembre che e infondo per aggiornare l'anno) if($day[$c]>31){ $day[$c]=1; $month++; $month="0".$month; $day[$c]=$day[$c]."-$month-$year"; } break; case 4: case 6: case 9: case 11: //mesi con 30 giorni if($day[$c]>30){ $day[$c]=1; $month++; $month="0".$month; $day[$c]=$day[$c]."-$month-$year"; } break; case 2: //febbraio if($year%4==0){ if($day[$c]>29){ $day[$c]=1; $month++; $month="0".$month; $day[$c]=$day[$c]."-$month-$year"; } } else{ if($day[$c]>28){ $day[$c]=1; $month++; $month="0".$month; $day[$c]=$day[$c]."-$month-$year"; } } break; case 12://dicembre aggiornamento dell'anno if($day[$c]>31){ $day[$c]=1; $month="01"; $year++; $day[$c]=$day[$c]."-$month-$year"; } break; } } }