Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Formattare la data

L'aspetto della data è un elemento client. Vedremo in questo capitolo come imporre un formato indipendente
L'aspetto della data è un elemento client. Vedremo in questo capitolo come imporre un formato indipendente
Link copiato negli appunti

Prima di iniziare a realizzare gli esercizi proposti in queste pagine, è
consigliabile rileggere i capitoli sulle funzioni della guida a VBScript. Ti
saranno utili le funzioni data/ora
e le funzioni sulle stringhe.

Iniziamo con un semplice script che stampi la data odierna:

<HTML>
<HEAD>
<TITLE>Esercizio 1</TITLE>
</HEAD>
<BODY>
<SCRIPT LANGUAGE=vbscript>
<!--
document.write (date())
//-->
</SCRIPT>
</BODY>
</HTML>

Dopo aver salvato e aperto questa pagina con il browser, apparirà a
video la data di oggi nel formato gg/mm/aaaa.
Immaginiamo di volerla far apparire in un formato esteso: ad esempio, mercoledi
5 settembre 2001. Abbiamo a disposizione due modi per farlo: il primo è con la funzione
FormatDateTime

<SCRIPT LANGUAGE=vbscript>
<!--
document.write (FormatDateTime (date(),1))
//-->
</SCRIPT>

La soluzione è perfetta, però può essere migliorata. La
data che appare è quella del computer dell'utente che visualizza la pagina:
se infatti provi a cambiare la data del tuo computer e ricarichi la pagina,
la data visualizzata non sarà più quella di oggi; inoltre il formato
e la lingua con cui è scritta dipendono sempre dalla impostazioni internazionali
del client. Prova nel pannello di controllo a mettere le impostazioni internazionali
in inglese e leggerai: Wednesday, September 05, 2001.
Se il contenuto della pagina è in italiano, ha senso visualizzare la
data solo in italiano, e sarà appunto questo il nostro obbiettivo.

Per prima cosa si caricano dei vettori con i giorni della settimana e i mesi:

<SCRIPT LANGUAGE=vbscript>
<!--
dim giorniset(7)
giorniset(1)="Domenica"
giorniset(2)="Lunedì"
giorniset(3)="Martedì"
giorniset(4)="Mercoledì"
giorniset(5)="Giovedì"
giorniset(6)="Venerdì"
giorniset(7)="Sabato"

dim mesi(12)
mesi(1)="Gennaio"
mesi(2)="Febbraio"
mesi(3)="Marzo"
mesi(4)="Aprile"
mesi(5)="Maggio"
mesi(6)="Giugno"
mesi(7)="Luglio"
mesi(8)="Agosto"
mesi(9)="Settembre"
mesi(10)="Ottobre"
mesi(11)="Novembre"
mesi(12)="Dicembre"
//-->
</SCRIPT>

Attraverso le funzioni WeekDay e Month è possibile avere un numero corrispondente
al giorno della settimana e uno al mese corrente. Chiaramente questi numeri
corrispondono agli indici dei vettori; in questo modo, se oggi è mercoledì
5 settembre 2001, la funzione WeekDay restituisce 4 e Month restituisce 9.

Ora immaginiamo di volere la data col giorno di 2 cifre e l'anno di 4 cifre.

Se il giorno è minore di 10, si aggiunge uno 0 davanti al numero corrispondente
al giorno della data odierna. La funzione che restituisce il giorno dalla data
è Day

if Day(date()) < 10 then
giorno="0" & Day(date()
else
giorno=Day(date())
end if

Per l'anno, invece, andiamo a controllare il numero di cifre che lo compongono.
La funzione che restituisce l'anno è Year, mentre con la funzione Len
si conoscono il numero di caratteri.

if Len(Year(date()) ) = 2 then
anno="20" & Year(date())
elseif Len(Year(date()) ) = 3then
anno="2" & Year(date())
else
anno=Year(date())
end if

Non ci resta che combinare queste parti di codice:

<html>
<head>
<title>esercizio 1</title>
</head>
<body>
<script language=vbscript>
<!--
dim giorniset(7)
giorniset(1)="domenica"
giorniset(2)="lunedì"
giorniset(3)="martedì"
giorniset(4)="mercoledì"
giorniset(5)="giovedì"
giorniset(6)="venerdì"
giorniset(7)="sabato"

dim mesi(12)
mesi(1)="gennaio"
mesi(2)="febbraio"
mesi(3)="marzo"
mesi(4)="aprile"
mesi(5)="maggio"
mesi(6)="giugno"
mesi(7)="luglio"
mesi(8)="agosto"
mesi(9)="settembre"
mesi(10)="ottobre"
mesi(11)="novembre"
mesi(12)="dicembre"

if day(date()) < 10 then
giorno="0" & day(date())
else
giorno=day(date())
end if

if len(year(date()) ) = 2 then
anno="20" & year(date())
elseif len(year(date()) ) = 3then
anno="2" & year(date())
else
anno=year(date())
end if

giornosettimana=giorniset(weekday(date()))
mese=mesi(month(date()))

document.write (giornosettimana & " " & giorno & " " & mese
& " " & anno)
//-->
</script>
</body>
</html>

Il risultato sarà sempre Mercoledì 05 Settembre 2001, indipendentemente
dalle impostazioni internazionali del client.

Ti consigliamo anche