Calcolare il numero di giorni per un mese

Obiettivo 

Volgiamo calcolare

  • il numero di giorni che ha un mese

Premesse

Abbiamo vogliamo eseguire il calcolo per un dato mese ed anno. Avremo impostato due variabili

  • $anno che contiene l'anno
  • $mese che contiene il mese

la variabile $query che conterrà la query mysql può esseder definita come

$query=sprintf("SELECT date_format(date_sub('%s-%s-01 00:00:00', interval '1' day),'%%d') giorni", $anno , $mese+1);

Spiegazione

La funzione sprintf sostituisce il primo %s con il valore di $anno, il secondo %s con %mese+1. Se abbiamo impostato come %mese 02 e %anno 2007 avremo la data '2007-03-01 00:00:00'.

La funzione date_sub sottrae un giorno (interval '1' day) alla data '2007-03-01 00:00:00' ottenendo così '2007-02-28 00:00:00'.

Per ottenere solo il giorno si applica la funzione date-format() con il parametro %d che significa giorno. Per evitare che la sprintf interpreti erroneamente il % occorre raddoppiarlo per cui scriveremo '%%d'

Se eseguiamo la query otterremo nel campo giorni il numero di giorni del mese, nel nostro esempio 28