La funzione che vedremo in questo breve tutorial serve per calcolare la differenza espressa in numero di giorni trà due date scritte nel formato "gg-mm-aaaa" (ad esempio "06-04-2007"). Lo script sfrutta una funzione nativa poco conosciuta ma molto utile del PHP che si chiama JDToGregorian() e viene utilizzata per la conversione di date digitate nel formato del calendario Gregoriano in giorni contati col sistema Giuliano.
Ecco il codice della nostra funzione:
<?php
//definiamo la funzione e le variabili
function diff_in_giorni($first, $second)
{
//isoliamo i valori contenuti nei due array
$array_f = @explode ("-", $first);
$array_s = @explode ("-", $second);
$dd1 = $array_f[0];
$mm1 = $array_f[1];
$yyyy1 = $array_f[2];
$dd2 = $array_s[0];
$mm2 = $array_s[1];
$yyyy2 = $array_s[2];
//utilizziamo i valori degli array come termini di confronto
$confronto1 = @gregoriantojd($mm1, $dd1, $yyyy1);
$confronto2 = @gregoriantojd($mm2, $dd2, $yyyy2);
//calcoliamo la differenza in giorni
return $confronto1 - $confronto2;
}
//utilizziamo la funzione
$differenza = @diff_in_giorni('22-02-1974', '06-04-2007');
echo $differenza;
?>
Il risultato atteso dal calcolo proposto in esempio č uguale a "-12096", cioè alla differenza in giorni trà il 22 febbraio del 1974 e il 6 aprile del 2007. Da notare che abbiamo utilizzato il segno "-" per separare giorni mesi e anni, potrà essere usato qualsiasi altro simbolo ma sarà necessario modificarlo anche trà i parametri passati alla funzione explode().