JavaScript/Oggetto Date: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Corretto: "contenente la"
m Update syntaxhighlight tags - remove use of deprecated <source> tags
Riga 4:
== Costruttore ==
Il metodo più semplice per creare una data è:
<sourcesyntaxhighlight lang=javascript>var data = new Date()</sourcesyntaxhighlight>
Nel caso non si passino valori al costruttore, verrà creata un oggetto Date contenente la data e l'ora corrente.<br/>
Altrimenti possiamo creare date precise con altri metodi:
*fornendo il numero di millisecondi passati dalla mezzanotte del primo gennaio 1970 (questo metodo è macchinoso ma è quello che più si avvicina al metodo con cui il computer ragiona con le date). Questo valore è chiamato ''timestamp''.
*fornendo una stringa che indichi la data, ad esempio:
<sourcesyntaxhighlight lang=javascript>var data = new Date("10 July 2007");
var data2 = new Date("10-7-2007");
</syntaxhighlight>
</source>
:Usando il metodo descritto nel secondo esempio, bisogna fare attenzione in quanto, essendo JavaScript eseguito con le impostazioni del client, per un utente USA invece che il 10 luglio 2007 la data sarà 7 ottobre 2007
*l'ultimo metodo è il migliore in quanto affidabilità e praticità messe assieme. La sintassi è:
<sourcesyntaxhighlight lang=javascript>var data = new Date(anno, mese, giorno, ora, minuti, secondi, millisecondi)</sourcesyntaxhighlight>
:Crea un oggetto data in base ai parametri passati; normalmente è possibile omettere l'ultimo parametro. Attenzione, gennaio è il mese 0 e non 1 e di conseguenza anche gli altri cambiano.
 
Riga 24:
*<code>getFullYear()</code>: restituisce il numero dell'anno con quattro cifre.
Visti questi metodi, possiamo già creare una funzione che restituisca una stringa contenente la data formattata. La funzione prende come parametro un oggetto Date e formatta la data in esso contenuta:
<sourcesyntaxhighlight lang=javascript>
function formattaData(data) {
var giornoS = data.getDay();
Riga 96:
return giornoS + " " + giornoM + " " + mese + " " + anno;
}
</syntaxhighlight>
</source>
Possiamo usare la funzione in questi modi:
<sourcesyntaxhighlight lang=javascript>
var d1 = new Date () //oggi
var d2 = new Date (2007, 6, 10);
document.write(formattaData(d1));
document.write(formattaData(d2));
</syntaxhighlight>
</source>
La funzione potrebbe sembrare inutile data l'esistenza del metodo dell'oggetto Date <code>toLocaleString()</code> che restituisce una stringa contenente la data formattata secondo le impostazioni locali dell'utente; tuttavia, per questo motivo, ad esempio, un utente inglese invece che <code>martedì 10 luglio 2007</code> otterrebbe <code>Tuesday, July 10, 2007 00:00:00</code>.
 
=== Impostare i valori della data ===
L'oggetto Date permette inoltre di modificare la data memorizzata nell'oggetto Date tramite i metodi <code>setDate()</code>, <code>setMonth</code> e <code>setFullYear</code>. Questi metodi sono molto utili, perché hanno la caratteristica di ragionare come è giusto fare per le date. Ad esempio:
<sourcesyntaxhighlight lang=javascript>
var d = new Date(2007, 3, 4); //4 Aprile 2007
d.setDate(31);
</syntaxhighlight>
</source>
In questo esempio impostiamo come giorno del mese di aprile il valore di 31, nonostante aprile conti solo 30 giorni. JavaScript lo sa e per questo porta la data al 1 di maggio. Questa funzionalità è spesso usata insieme ai metodi per ottenere le date:
<sourcesyntaxhighlight lang=javascript>
d.setMonth(d.getMonth() - 6); //sei mesi prima
</syntaxhighlight>
</source>
 
=== Lavorare con l'ora ===
L'oggetto Date mette a disposizione funzioni analoghe anche per gestire le ore:
*<code>getHours()</code>, <code>getMinutes()</code>, <code>getSeconds()</code> e <code>getMilliseconds</code> restituiscono rispettivamente l'ora, i minuti, i secondi e i millisecondi dell'oggetto Date. Ad esempio:
<sourcesyntaxhighlight lang=javascript>
var d = new Date(2007, 3, 4, 23, 45, 6, 12); //4 aprile 2007, ore 23:45:6 (11 pm)
d.getSeconds(); //restituisce 6
</syntaxhighlight>
</source>
Il metodo <code>getMilliseconds</code> permette anche di cronometrare l'esecuzione di una porzione di codice o il caricamento della pagina HTML. Inseriamo in testa alle istruzioni da cronometrare il codice:
<sourcesyntaxhighlight lang=javascript>
var dataPrima = new Date(); //adesso
//memorizza secondi e millisecondi
var sPrima = dataPrima.getSeconds();
var msPrima = dataPrima.getMilliseconds();
</syntaxhighlight>
</source>
In questo modo salviamo i secondi e i millisecondi del momento in cui inizia il caricamento; poi inseriamo in fondo alla pagina:
<sourcesyntaxhighlight lang=javascript>
var dataDopo = new Date(); //adesso
//memorizza secondi e millisecondi
Riga 139:
 
document.write('Pagina caricata in ' + (sDopo - sPrima) + ' secondi e ' + Math.abs(msDopo - msPrima) + ' millisecondi');
</syntaxhighlight>
</source>
 
=== Gestire i fusi orari ===