Gestire le date in php e MySQL
[Origine: http://www.abaconline.com/?q=node/24 ]
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
11/05/2007
Per informazioni sui vari formati della data si può consultare il sito
ufficiale di php qui <http://it2.php.net/manual/it/function.date.php>
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
11/05/2008
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
<http://dev.mysql.com/doc/mysql/en/Date_and_time_functions.html>
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