Creare data in Vbscript



Uno dei più grandi difetti dell’obsoleto VBScript è la gestione delle date. Il buco più grosso è che la creazione di una data è affidata alla funzione CDate, che accetta un oggetto di tipo Date.

Questo oggetto accetta vari formati di data, compreso quello con il mese in formato verboso (vedi sintassi). Il problema è che se noi gli diamo in pasto una data in formato numerico tipo "12/12/2008" lui riconosce la posizione del mese in base al settaggio del formato locale del server: TERRRRRRRRRRRRRRRIBBBBBBBBBBBBBBBBBILE!!!

Come ovviare? Dopo aver imprecato qualsiasi entità superiore buona o cattiva ho trovato una soluzione blasfemica, ma funziona: usiamo il verbose mode.

Creiamo un array per valorizzare il mese:

Dim elencoMesi(12)
    elencoMesi(0) = "January"
    elencoMesi(1) = "February"
    elencoMesi(2) = "March"
    elencoMesi(3) = "April"
    elencoMesi(4) = "May"
    elencoMesi(5) = "June"
    elencoMesi(6) = "July"
    elencoMesi(7) = "August"
    elencoMesi(8) = "September"
    elencoMesi(9) = "October"
    elencoMesi(10) = "November"
    elencoMesi(11) = "December"

Quindi creiamo una stringa di data e tempo in formato para verboso:

tmpDateReg2S = elencoMesi(MM-1) & " " & DD & ", " & YYYY & " " & HH & ":" & NN & ":" & SS)

E il gioco è fatto. Avete altre soluzioni più decenti voi?

ps.: NN sono i minuti!

Se trovi questo articolo su un blog diverso da “blog.merlinox.com” si tratta probabilmente di una copia non autorizzata. L’indirizzo originale di questo articolo è: Creare data in Vbscript scritto da .

2 Responses to Creare data in Vbscript

  1. justcom dice:

    Ciao, io uso una funzione che mi crea un intero che mi rappresenta la data nel formato aaaammgg (Es.: 20081209).
    Poi tramite un’altra funzione formatto nel formato necessario (09/12/2008, Martedì 09 Dic 2008, ecc).
    In questo modo sono indipendente dalle impostazioni del server e posso anche effettuare operazioni tra date.
    Un saluto

  2. Merlinox dice:

    Ottima strada anche quella certamente. Lo si può fare anche come stringa, basta mantenere il leading zero a due cifre.
    Certo che è triste dovere arrivare a queste soluzioni.
    Ogni giorno che suo vbscript diventa sempre più doloroso nel mio cuore il ricordo di coldfusion!!!

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *

*

È possibile utilizzare questi tag ed attributi XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>