Sicuramente, se avete delle pagine su internet e non avete lo script per aggiornare la data dell'ultima modifica, passerete diverso tempo a scrivere a mano, ogni volta che cambiate qualcosa, la data dell'ultima modifica fatta. Ebbene sappiate che non c'è bisogno di perdere tempo a farlo perché si può creare un javascript che lo fa per noi, prendendo la data dell'ultimo salvataggio della pagina (okkio! basta anche solo aprire con un editor la pagina e cliccare su salva, anche se non si modifica niente) e scrivendola sul punto specificato.
Ecco come si fa (Accanto al codice c'è la spiegazione in modo che possiate capire come funziona e apportare le vostre modifiche!):



Un esempio semplice

<script language="javascript">

var modifica = new Date(document.lastModified);

document.write("aggiornato il " + modifica.getDate()+ "/" (modifica.getMonth()+1) + "/" + modifica.getYear());

</script>
Il tag di inizio script.

Si crea la variabile di tipo data che conterra' le informazioni sull'ultima modifica, prese con document.lastModified

Si fa scrivere con document.write il messaggio composto da "aggiornato il " che va tra doppi apici perché è un testo (come la barra che separa le cifre) e poi giorno, mese e anno separati dal più che concatena i vari elementi da scrivere. Il giorno e anno sono ottenuti con i metodi getDate() e getYear() applicati alla variabile modifica, mentre (ATTENZIONE) il mese è ottenuto tramite il metodo getMonth a cui si somma 1 perché i mesi sono contenuti in un array (che come tutti gli array inizia da zero!!!)

Si chiude il tag script

Ecco un esempio di cosa succede :


Mettiamo anche il giorno della settimana
<script language="javascript">

var modifica = new Date(document.lastModified);

giorno = new Array("Domenica","Lunedi\'", "Martedi\'", "Mercoledi\'", "Mercoledi\'", "Giovedi\'", "Venerdi\'", "Sabato");

document.write("Aggiornato " + giorno[modifica.getDay()+1] + " " + modifica.getDate() + "/" + (modifica.getMonth()+1) + "/" + modifica.getYear());

</script>
Codice simile a quello dell'esempio precedente:
viene aggiunto l'array giorno e nella parte che si occupa di scrivere la data, specifichiamo la posizione che il giorno della settimana occupa nell'array stesso tramite la funzione modifica.getDay() la quale restituisce un numero (0=dom, 1=lun, 2=mart. ecc.) di un array che, quindi, parte da zero (occhio qui ai riferimenti!). Un'ultima nota. Gli apici singoli che fungono da accenti devono essere usati come carattere di escape (ovvero \') altrimenti vengono interpretati male.

Ecco cosa viene scritto:


Se proprio siete pignoli, avete notato che il mese è scritto con una sola cifra, così luglio è 7 e non 07.
Qui sotto c'è il listato precedente modificato per questa evenienza.

<script language="javascript">

var modifica = new Date(document.lastModified);

giorno = new Array("Domenica","Lunedi\'", "Martedi\'", "Mercoledi\'", "Mercoledi\'", "Giovedi\'", "Venerdi\'", "Sabato");

if ((modifica.getMonth()+1)<10)
{
document.write("Aggiornato " + giorno[modifica.getDay()+1] + " " + modifica.getDate() + "/0" + (modifica.getMonth()+1) + "/" + modifica.getYear());
}

else
{
document.write("Aggiornato " + giorno[modifica.getDay()+1] + " " + modifica.getDate() + "/" + (modifica.getMonth()+1) + "/" + modifica.getYear());
}
</script>
Codice simile ancora una volta a quello dell'esempio precedente:
Questa volta quello che cambia è il modo di scrivere la data. Se (if) il numero dei mesi è minore di 10, si aggiunge uno zero davanti alla cifra del mese, altrimenti (else) si scrive normalmente!

Ecco il risultato:

Ma (e c'è sempre un ma) questo codice è un po' troppo "sprecone". Infatti è possibile cambiare soltanto il contenuto di modifica.getMonth() in modo che segni il mese sempre con due cifre. L'if rimane lo stesso ma viene applicato alla variabile stessa.
Vediamo come...

<script language="javascript">

var modifica = new Date(document.lastModified);

giorno = new Array("Domenica","Lunedi\'", "Martedi\'", "Mercoledi\'", "Mercoledi\'", "Giovedi\'", "Venerdi\'", "Sabato");

var modifica = new Date(document.lastModified);

mese = modifica.getMonth()+1;
if (mese<10)
mese = "0" + (modifica.getMonth()+1);

document.write("Aggiornato " + giorno[modifica.getDay()+1] + " " + modifica.getDate() + "/" + mese + "/" + modifica.getYear());
}
</script>
Ecco qua; fino all'if sul mese tutto è uguale, eccetto la creazione di una varibile chiamata mese che prende il mese da modifica Poi si toglie tutto il codice che faceva scrivere la data con lo zero e si fa aggiornare la variabile mese nel caso sia minore di dieci. In seguito basta mettere la funzione di stampa a video.



Se invece volete fare proprio i precisini, al secondo e universalmente, il vostro compito è ancora più facile. Se prima, una volta creata la variabile "modifica" dovevate chiamare i vari metodi per estrapolare giorno, mese e anno, adesso la vostra vita sarà molto più semplificata con il seguente script:

<script language="javascript">

var modifica = new Date(document.lastModified);

document.write("Ultimo aggiornamento " + modifica);

</script>
Dicendo semplicemente di stampare il contenuto di "modifica" avrete giorno della settimana, mese, giorno del mese, ora (precisa al secondo), a quale fuso orario si appartiene (l'Italia è UTC+0200, ovvero due ore dal meridiano fondamentale) e l'anno.

Ecco il risultato:



Un'ultima cosa: vi sarete chiesti "ma perchè in tutte le pagine del sito, nella data dell'aggiornamento c'è scritto '2k' e non '2000'? Come mai?"
Beh, è molto semplice. Al posto di far stampare modifica.getYear(), si fa stampare la stringa "2k".
Ma quante ne so!!!


<-Indietro