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(12, 0, 0, $fine_mm, $fine_gg, $fine_aa) - mktime(12, 0, 0, $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