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!

Loading Facebook Comments ...

2 pensieri su “Creare data in Vbscript

  1. justcom

    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

    Rispondi
  2. Merlinox Autore articolo

    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!!!

    Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *