Corsi on-line

Data di ieri e di domani con PHP

Da una richiesta sul forum di Mr.Webmaster mi è venuta l’idea per questo breve post. Vediamo come eseguire, dinamicamente, un semplicissimo calcolo per individuare la data del giorno precedente e di quello successivo partendo da una certa data.

Per conoscere la data di domani è sufficiente far ricorso alle funzioni date() e mktime() di PHP in questo modo:

$domani = date('d/m/Y', mktime(0,0,0,date(m),date(d)+1,date(Y)));

analogo il calcolo della data di ieri:

$ieri = date('d/m/Y', mktime(0,0,0,date(m),date(d)-1,date(Y)));

In queste due semplici operazioni la data di partenza è quella di oggi e non facciamo altro che sommare o sottrarre uno al giorno indicato all’interno della funzione mktime().

Con lo stesso sistema è possibile effettuare un calcolo analogo partendo, invece che dalla data odierna, da una data qualsiasi. Per farlo possiamo utilizzare queste due semplici funzioni:

function giorno_dopo($gg,$mm,$aaaa)
{
  return date('d/m/Y', mktime(0,0,0,$mm,$gg+1,$aaaa));
}
function giorno_prima($gg,$mm,$aaaa)
{
  return date('d/m/Y', mktime(0,0,0,$mm,$gg-1,$aaaa));
}

Le funzioni citate accettano tre argomenti (giorno,mese,anno) e vanno utilizzate in questo modo:

echo giorno_dopo(26,5,2010);
Post correlati
  • ciao
    non sarebbe meglio un unica funzione?

    function giorno_dopo_o_prima($gg,$mm,$aaaa,$gdp)
    {
    return date(‘d/m/Y’, mktime(0,0,0,$mm,($gg+$gdp),$aaaa));
    }

    da utilizzare

    echo giorno_dopo_o_prima(26,5,2010, 1);

    oppure
    echo giorno_dopo_o_prima(26,5,2010, -1);

  • Massimiliano Bossi

    Sì, hai perfettamente ragione.
    Da un punto di vista didattico mi sembrava un pochino più chiaro utilizzare due funzioni differenti… ma da un punto di vista di “sviluppo” la tua osservazione è giustissima (risparmiare un po di codice è sempre cosa buona e giusta!!!).

  • Enea Melandri

    vale anche per il primo o l’ultimo del mese?

I più letti del mese
Tematiche