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

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

e le funzioni sulle

[!] Ci sono problemi con l'autore. Controllare il mapping sull'Author Manager

.

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.

Questo articolo contiene link di affiliazione: acquisti o ordini effettuati tramite tali link permetteranno al nostro sito di ricevere una commissione nel rispetto del codice etico. Le offerte potrebbero subire variazioni di prezzo dopo la pubblicazione.

Ti consigliamo anche