Gestire le date in php e MySQL

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

.