Come gestire le date in php

gestire date php clessidra blog kaupapa

Non so per quale strano motivo, ma la gestione delle date in php è una di quelle cose che non riesce ad entrarmi in testa.

Ogni volta che mi serve, che so, per creare un template per una pagina di eventi, per creare delle condizioni di visualizzazione degli articoli o chissà cos’altro devo sempre partire da zero, fra terminologia e funzioni perdo sempre un mucchio di tempo.

Ho pensato quindi di scrivere un piccolo articolo ‘memo’, da riprendere all’occorrenza e di condividerlo con voi, sia mai che possa servire a qualcun’altro -arrugginito dall’età come me 🙂

Allora, partiamo da un po’ di terminologia:

timestamp

timestamp –>  è un NUMERO INTERO che permette di gestire la date in maniera più comoda, e rappresenta il numero di secondi a partire da una data di default (detta UNIX EPOCH)

echo time(); //restituisce ad esempio 1517296931

strtotime()

strtotime()–> è una funzione che restituisce il timestamp di qualsiasi data

echo strtotime('2018-10-15'); //restituisce ad esempio 1539561600
echo strtotime('+2 day'); //restituisce ad esempio 1517470099

per ulteriori esempi si faccia riferimento al manuale php online

esempio concreto

Quindi per formattare una data (ad esempio la data di oggi):

$timestamp= strtotime('now');//trovo il timestamp di oggi
echo date('d/m/Y H:i:s', $timestamp); //stampa la data di oggi (nel mio caso 30/01/2018 08:33:20)

La funzione date() che trovate qui sopra ammette due parametri: COME voglio formattare la data e QUALE data voglio sotto forma di timestamp; in altre parole, per usare una terminologia corretta, è

string date ( string $format [, int $timestamp = time() ] )

in html5 con uno sguardo al SEO

Ok. Se io voglio inserire una data in un template html5, il modo giusto per inserirla (anche lato SEO) è:

echo ('<time datetime="').date('c').('"> ').date('Y - m - d').'</time> '; //che restituisce 

gestire il fuso orario

Infine se voglio settare l’orario su un fuso specifico, devo usare la funzione date_default_timezone_set(”)

date_default_timezone_set('Europe/Rome'); //definisco il mio fuso
$timestamp= strtotime('now');
echo date('d/m/Y H:i:s', $timestamp); //stamperà la data e l'ora con il fuso di Roma

Ciao! Questo è il posto giusto per opinioni, domande, chiacchiere in libertà...