allora ragazzi, una cortesia perché sono in difficoltà.
Utilizzo questa funzione per il calcolo dei giorni,settimane,mesi e anni:
Codice PHP:
function datediff($tipo$partenza$fine)
{
    switch (
$tipo)
    {
        case 
"A" $tipo 365;//anni
        
break;
        case 
"M" $tipo = (365 12);//mesi
        
break;
        case 
"S" $tipo = (365 52);//settimane
        
break;
        case 
"G" $tipo 1;//giorni
        
break;
    }
    
$arr_partenza explode("/"$partenza);
    
$partenza_gg $arr_partenza[0];
    @
$partenza_mm $arr_partenza[1];
    @
$partenza_aa $arr_partenza[2];
    
$arr_fine explode("/"$fine);
    
$fine_gg $arr_fine[0];
    @
$fine_mm $arr_fine[1];
    @
$fine_aa $arr_fine[2];
    @
$date_diff mktime(1200$fine_mm$fine_gg$fine_aa) - mktime(1200$partenza_mm$partenza_gg$partenza_aa);
    
$date_diff  floor(($date_diff 60 60 24) / $tipo);
    return 
$date_diff;

eseguendo una echo di questa operazione:
Codice PHP:
echo datediff("S"date("03/10/2012"), date("31/10/2012"));
//ris: 3 settimane alla fine del mese invece che 4

echo datediff("S"date("10/10/2012"), date("31/10/2012"));
//ris:2 settimane alla fine del mese invece che 3 
Domanda: perchè mi restituisce le settimane falsate di una?
grazie