Gestire le date in php e MySQL

Funzioni php

Conversione data

Convertire la data da formato europeo (gg/mm/aaaa) in formato americano (aaaa-mm-gg) per inserirla in una tabella MySQL

function convertiData($dataEur){
$rsl = explode ('/',$dataEur);
$rsl = array_reverse($rsl);
return implode($rsl,'-');
}

Esempio

<?php echo convertiData("01/02/2003"); ?>

da come risultato => 2003-02-01

 

Visualizzare la data

Per visualizzare la data di oggi si utilizza la funzione date() indicando come argomento il formato che ci interessa

<?php echo date("d/m/Y"); ?>

da come risultato

16/05/2008

Per informazioni sui vari formati della data si può consultare il sito ufficiale di php qui

 

Per stampare la data nell'anno successivo, come ad esempio per le date di scadenza si può utilizzare

<?php echo strftime("%d/%m/%Y",mktime(0,0,0,date("m"), date("d"), date("Y")+1)); ?>

che da come risultato

16/05/2009

 

Funzioni Mysql

Query

Se una tabella contiene un campo date, è possibile visualizzare il giorno in formato gg/mm/aaaa utilizzando la funzione MySQL date_format.

date_format(<campo>,'%d/%m/%Y')

Esempio

La tabella fattura contiene il campo giorno di tipo date. Eseguendo la query

SELECT date_format(giorno,'%d/%m/%Y') giorno FROM fattura

si otterranno tutte le date delle fatture.

Per informazioni sui vari formati da utilizzare in date_format si può consultare il sito ufficiale di MySQL qui

 

Calcolare il giorno della settimana

Per sapere se un giorno è lunedì o martedì, ecc utilizzare

ELT(DAYOFWEEK(<campo data>),'dom','lun','mar','mer','gio','ven','sab')

 

Test se una data sta per scadere 1 mese prima

Supponiamo che il campo scadenza contiene delle date, vogliamo evidenziare le date in cui manca un mese alla scadenza. Con il seguente test nel campo staperscadere avremo i valor si/no a seconda della data di scadenza

IF( (date_add(scadenza, interval -1 month) < now())
and (scadenza >= now()) ,si,no) staperscadere

 

Calcolare quanti gioni mancano alla scadenza

Supponiamo che il campo data_pagamento contiene la data di scadenza di una fattura. Per sapere quanti giorni mancano da oggi alla scadenza si può usare

(TO_DAYS(data_pagamento)-TO_DAYS(now())) giorni_mancanti