disign.it | Le date in Php e Mysql | a digital sign for a best design!
A digital sign for a best design
Programmazione 3.830 visualizzazioni

Le date in Php e Mysql

13/09/2011

Prima di tutto definiamo il significato di Timestamp, elemento di base per utilizzare le date in Php.
Timestamp rappresenta il numero di secondi trascorsi dallo Unix Time, ovvero il 1 gennaio 1970 ore 00:00.
Scrivendo l'istruzione
echo time();
visualizzeremo dunque un valore simile a 1315926652.

Mysql invece ha tre tipi di date, DATETIME, DATE, e TIMESTAMP.
DATETIME memorizza data  e ora  come stringa nel formato YYYY-MM-DD HH:MM:SS (es. 2010-12-25 16:41:35).
DATE usa solo la parte data YYYY-MM-DD (es. 2010-12-25).
Attenzione, TIMESTAMP non ha nulla a che fare con il valor indicato prima per PHP!
La colonna  TIMESTAMP di Mysql è un  DATETIME che automaticamnte aggiorna la data ad ogni modifica del record.

Esistono due funzioni Php che permettono il passaggio da un formato all'altro:
$mysql_data = date( 'Y-m-d H:i:s', $php_data ) prende una data in formato Php nel secondo parametro e la trasforma in datetime.
$php_data = strtotime( $mysql_data ) fa l'operazione inversa.

Ritorniamo alle date in Php.
La funzione date utilizza le lettere per formattare diversamente l'output.
Usiamo ad esempio
echo date("d/m/y");

In questo caso le tre lettere rappresentano rispettivamente:
    d: il giorno del mese con valore da 01 a 31.
    m: il mese corrente con valore numerico da 01 a 12.
    y: l'anno corrente espresso con due cifre da 00 a 99

Fra le tre lettere possiamo inserire il carattere che separerà i tre valori in output.
Vediamo quali altri parametri di formattazione possiamo utilizzare attraverso le lettere.
 
Data e ora completi:
    r: Mostra data ora e timezone completi senza necessità di inserire tutti i parametri, quindi date("r"); equivale a date("D, d M Y H:i:s O");

Time:
    a: am o pm
    A: AM o PM
    g: ora senza gli zeri, da 1 a 12.
    G: ora in formato 24h senza gli zeri, da 0 a 23.
    h: ora con gli zeri, da 01 a 12.
    H: ora in formato 24h con gli zeri, da 00 a 23.
    i: minuti con gli zeri, da 00 a 59.
    s: secondi con gli zeri, da 00 a 59.

Day:
    d: Giorno del mese con gli zeri, da 01 a 31.
    j: Giorno del mese senza gli zeri, da 1 a 31.
    D: Giorno della settimana abbreviato, da Sun a Sat (in inglese partendo dalla domenica!).
    l: Giorno della settimana, da Sunday a Saturday (in inglese partendo dalla domenica!).
    w: Giorno della settimana senza gli zeri, da 0 a 6 (in inglese partendo dalla domenica!).
    z: Giorno dell'anno senza gli zeri, da 0 a 365.

Month:
    m: numero del mese con gli zeri, da 01 a 12.
    n: numero del mese senza gli zeri, da 1 a 12.
    M: nome del mese abbreviato, da Jan a Dec.
    F: nome del mese completo, da January a December.
    t: numero del giorno del mese, da 28 a 31.

Year:
    L: restituisce 1 se è un anno bistile e  0 se non lo è.
    Y: anno espresso con quattro cifre.
    y: anno espresso con due cifre da 00 a 99.

Altre formattazioni:
    U: il numero di secondi trascorso dalla Unix Epoch (January 1, 1970)
    0: la differenza dal  Greenwich Meridian Time (GMT), es. 0100 = 1 ora, -0600 = -6 ore.

Concludiamo la segnalazione della funzione Php mktime:
int mktime ([ int $hour = date("H") [, int $minute = date("i") [, int $second = date("s") [, int $month = date("n") [, int $day = date("j") [, int $year = date("Y") [, int $is_dst = -1 ]]]]]]] )
che retituisce lo Unix timestamp corrispondente agli argomenti dati.
Gli argomenti vanno impostati nell'ordine indicato, quelli omessi verranno automaticamente impostati secondo i valori correnti dalla data e ora locale (quindi del server).

Creiamo ad esempio il timestamp di domani:

$domani = mktime(0, 0, 0, date("m"), date("d")+1, date("y"));
echo "domani sarà  il ".date("d/m/y", $domani);

PHP
← Eliminare una partizione OEM Html entities, unicode →

Invia una domanda o un commento sull'articolo

I campi obbligatori sono segnalati *

*

*



 

© 2009 - 2017 Impronte digitali di Luca Frassineti. Tutti i diritti riservati.