Categorie
Javascript Programmazione

{JS} new Date()

L’oggetto Date

Per la rappresentazione di date e orari JavaScript prevede l’oggetto Date. Esso codifica internamente una data come il numero di millisecondi trascorsi dal 1 Gennaio 1970, ora di Greenwich.

Modalità differenti per definire una data

Data e ora corrente

var dataOdierna = new Date();

Non specifichiamo alcun parametro nel costruttore e otteniamo un oggetto Date con il valore della data e ora corrente

Data in millesecondi

var giorno = new Date(1379989986515); 

Parametro in millisecondi a partire dalla data 1 gennaio 1970; E’ possibile passare parametri con valore negativo per date antecedenti.

Risorse sul web:
https://convertlive.com/it/u/convertire/giorni/a/millisecondi

Data in stringa

var giorno = new Date("01/01/2013 15:30");

Possiamo indicare una data con una stringa come parametro

Data specificando argomenti

var giorno = new Date(2013, 1, 1, 15, 30, 0, 0);

Gli argomenti devono essere specificati rispettivamente nel seguente ordine: anno, mese, giorno, ora, minuti, secondi e millisecondi

A parte dall’anno ed il mese, gli altri argomenti successivi in quest’ultimo tipo di chiamata sono opzionali.
Il mese ha corrispondenti valori numerici che vanno da zero (gennaio) a 11 (dicembre).

Metodi

Estrarre e scomporre componenti data

L’oggetto Date() ha a disposizione una serie di metodi che consentono di estrarre/scomporre le date:

getFullYear()Restituisce l’anno rappresentato con quattro cifre
getMonth()Restituisce il mese (da 0 a 11)
getDate()Restituisce il giorno del mese (da 1 a 31)
getDay()Restituisce il giorno della settimana (da 0 a 6)
getHours()Restituisce l’ora
getMinutes()Restituisce i minuti
getSeconds()Restituisce i secondi
getMilliseconds()Restituisce i millisecondi
Esempi per ricavare il giorno della settimana
var oggi = new Date();
var giorno;
switch (oggi.getDay()) {
case 0: giorno = "domenica"; 
break;
case 1: giorno = "lunedì"; 
break;
case 2: giorno = "martedì"; 
break;
case 3: giorno = "mercoledì"; 
break;
case 4: giorno = "giovedì";
break;
case 5: giorno = "venerdì"; 
break;
case 6: giorno = "sabato";
break;
}
document.write("Oggi è " + giorno);
var oggi = new Date(),
giorno = ["domenica", "lunedì", "martedì", "mercoledì","giovedì", "venerdì","sabato"];
document.write("Oggi è " + giorno[oggi.getDay()]);

Modificare componenti data

Seguono altri metodi per modificare i valori di una data:

setFullYear()Imposta l’anno di una data
setMonth()Imposta il mese di una data
setDate()Imposta il giorno del mese di unadata
setHours()Imposta l’ora di una data
setMinutes()Imposta i minuti di una data
setSeconds()Imposta i secondi di una data
setMilliseconds()Imposta i millisecondi di una data
setTime()Imposta data e ora specificandolain millisecondi rispetto al 1 Gennaio 1970
Note: Le modifiche di una data aggiungendo o sottraendo valori, ad esempio mesi, giorni o ore, comporta la gestione automatica degli altri componenti della data.
var giorno= new Date();
var nuovoGiorno = giorno.setFullYear(giorno.getFullYear() + 1);

Nell’esempio qui sopra abbiamo preso la data corrente ed impostiamo la stessa data per l’anno prossimo

Convertire una data in stringa

Una serie di metodi consentono la rappresentazione di una data sotto forma di stringa

toDateString()Converte la componente data in stringa, escludendo l’ora
toISOString()Converte una data in stringa in formato ISO
toLocaleDateString()Converte la componente data in stringa, escludendo l’ora, secondo le impostazioni locali
toLocaleTimeString()Converte la componente ora in stringa, escludendo la data, secondo le impostazioni locali
toLocaleString()Converte una data in stringa secondo le impostazioni locali
toString()Converte una data in stringa
toTimeString()Converte la componente ora in stringa, escludendo la data
toUTCString()Converte una data UTC in stringa
var oggi = new Date();
var dataInStringa = oggi.toDateString();
document.write(dataInStringa);

Impostare formati data locali

Le date sono indicate in base alle impostazioni locali della macchina su cui viene eseguito uno script e può capitare che non coincida con la nostra data corrente.
JavaScript mette a disposizione alcuni metodi per poter lavorare con la rappresentazione UTC delle date.

La data UTC è relativa all’ora di Greenwich (Greenwich Mean Time o GMT) conosciuta anche come Universal Time Coordinate (UTC).

Avremo quindi un punto di riferimento per calcolare esattamente la nostra data corrente.

Per tutti i metodi precedentemente citato esiste un corrispettivo metodo UTC ecco alcuni esempi:

getUTCDate(), getUTCDay(), ecc.
setUTCDate(), setUTCMonth(), ecc.

Particolare menzione vuole il metodo getTimezoneOffset() che restituisce la differenza in minuti tra l’ora UTC e l’ora locale

var oggi = new Date()
var differenzaDaUtc = oggi.getTimezoneOffset();
document.write(differenzaDaUtc);
Note:  Il risultato stampato a video avrà valore negativo o positivo a seconda se l’ora locale è rispettivamente maggiore o minore dell’ora UTC

Confrontare le date

Infine è importante sapere che JavaScript prevede la possibilità di confrontare due date tramite i normali operatori di confronto

var scadenza = new Date(2013, 11, 10);
var oggi = new Date();
if (oggi < scadenza) messaggio = "Non ancora scaduto!";
if (oggi > scadenza) messaggio = "Ci dispiace, è scaduto!";
document.write(messaggio);

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *