|
Le date in ASP e SQL
di Nino Vessella
2000 04 01
Dopo la brutta esperienza con Aruba che, per colpa di
Microsoft (secondo un arubiano), cambiava, fra le altre cose, il
formato delle date, ho pensato di non usare piú il tipo date nelle mie
pagine.
Tutte le date le trasformo in stringhe
"ungheresi", cioé nel formato giustamente adottato dall'ANSI
che permette l'ordinamento: AAAAMMGGhhmmss. Per fare questo ho
sostituito le funzioni di
VBScript. Poiché io (non ho la pretesa di insegnare ad altri, ma sto
semplicemente 'raccontando' le mie soluzioni!) ho due esigenze diverse ho
creato due pagine di funzioni da includere nelle normali ASP che
utilizzano le date e tutti i campi che dovrebbero essere di tipo
data/ora dei miei archivi .mdb o SQL sono di tipo testo.
fn_strData.asp
Nelle
funzioni incluse in questo file utilizzo il punto come separatore delle
varie parti perché mi permette di usare la funzione split().
Le
funzioni sono:
sDataStr - Trasforma la data di sistema (in qualsiasi formato essa sia) nella
stringa AAAA.MM.GG.hh.mm.ss. Esempio 01-12-1900 23:59:59 ->: 1900.12.01.23.59.59
sStrData(sData) - Estrae una data in formato ANSI dalla stringa AAAA.MM.GG.hh.mm.ss. Esempio: sStrData("1900.12.01.23.59.59") riporta 1900 12 01
sStrDataOra(sData) - Estrae data e ora in formato ANSI dalla stringa AAAA.MM.GG.hh.mm.ss. Esempio: sStrDataOra("1900.12.01.23.59.59") riporta 1900 12
01 23:59:59
sStrDataIta(sData) - Estrae una data in formato Italiano "breve" dalla stringa
AAAA.MM.GG.hh.mm.ss. Esempio: sStrDataIta("1900.12.01.23.59.59") riporta
01-12-1900
sStrDataOraIta(sData) - Estrae data e ora in formato italiano "breve" dalla stringa
AAAA.MM.GG.hh.mm.ss. Esempio: sStrDataOraIta("1900.12.01.23.59.59") riporta
01-12-1900 23:59:59
sStrLDataIta(sData) - Estrae una data in formato Italiano "lungo" dalla stringa
AAAA.MM.GG.hh.mm.ss. Esempio: sStrDataIta("1900.12.01.23.59.59") riporta 01-dic-1900
sStrLDataOraIta(sData) - Estrae data e ora in formato italiano "lungo" dalla stringa
AAAA.MM.GG.hh.mm.ss. Esempio: sStrDataOraIta("1900.12.01.23.59.59") riporta 01-dic-1900
23:59:59
<%
Function sDataStr
sDataStr= _
right("19" & cStr(Year(Date)),4) &
"." & _
right("00" & cStr(Month(Date)),2) &
"." & _
right("00" & cStr(Day(Date)),2) & "."
& _
right("00" & cStr(Hour(Time)),2) &
"." & _
right("00" & cStr(Minute(Time)),2) &
"." & _
right("00" & cStr(Second(Time)),2)
end function
Function sStrData(sData)
asData=Split(sData,".",3)
sStrData = asData(0) & " " & _
asData(1) & "
" & asData(2)
end function
Function sStrDataOra(sData)
asData=Split(sData,".")
sStrDataOra = asData(0) & " " & _
asData(1) &
" " & asData(2) & _
asData(3) & ":" & asData(4) & ":" &
asData(5)
end function
Function sStrDataIta(sData)
asDataIta=Split(sData,".",3)
sStrDataIta = asDataIta(2) & "-" & _
asDataIta(1) &
"-" & asDataIta(0)
end function
Function sStrDataOraIta(sData)
asDataIta=Split(sData,".")
sStrDataOraIta = asDataIta(2) & "-" & _
asDataIta(1)
& "-" & asDataIta(0) & _
asDataIta(3) & ":" & asDataIta(4) & ":"
&_
asDataIta(5)
end function
Function sStrLDataIta(sData)
asDataIta=Split(sData,".",3)
sStrLDataIta = asDataIta(2) & "-" &_
MonthName(asDataIta(1),true)
& "-" & _
asDataIta(0)
end function
Function sStrLDataOraIta(sData)
asDataIta=Split(sData,".")
sStrLDataOraIta = asDataIta(2) & "-" & _
MonthName(asDataIta(1),true)
& "-" & _
asDataIta(0) & asDataIta(3) & ":" & _
asDataIta(4)
& ":" & asDataIta(5)
end function
%>
|
fn_dAnsi.asp
Le
funzioni incluse in questo file, invece, trasfomano il tempo di
sistema (data e ora) in una stringa formato ANSI "puro",
cioé senza separatori (se ricordo bene le norme ISO prevedono uno
spazio)
Le funzioni sono:
DataAnsi(SysDate) - Riporta la stringa: AAAAMMGG
DataOraAnsi(SysNow) - Riporta la stringa: AAAAMMGGhhmmss
Anno(SysDate) - Riporta l'anno
Mese(SysDate) - Riporta il mese
Giorno(SysDate) - Riporta il giorno
Ora(SysNow)
Minuti(SysNow)
Secondi(SysNow)
Data() - Riporta la data nel formato: AAAA-MM-GG
Tempo() - Riporta l'ora nel formato: hh:mm:ss
<%
Function DataAnsi(SysDate)
DataAnsi= _
right("19" & cStr(Year(SysDate)),4) & _
right("00" & cStr(Month(SysDate)),2) & _
right("00" & cStr(Day(SysDate)),2)
end function
Function DataOraAnsi(SysNow)
DataOraAnsi= _
right("19" & cStr(Year(SysNow)),4) &
_
right("00" & cStr(Month(SysNow)),2) & _
right("00" & cStr(Day(SysNow)),2) & _
right("00" & cStr(Hour(SysNow)),2) & _
right("00" & cStr(Minute(SysNow)),2) & _
right("00" & cStr(Second(SysNow)),2)
end function
Function Anno(SysDate)
Anno=cInt(mid(DataANSI(SysDate),1,4))
end function
Function Mese
Mese=cInt(mid(DataANSI(SysDate),5,2))
end function
Function Giorno(SysDate)
Giorno=cInt(mid(DataANSI(SysDate),7,2))
end function
Function Ora(SysNow)
Ora=cInt(mid(DataOraANSI(SysNow),9,2))
end function
Function Minuti(SysNow)
Minuti=cInt(mid(DataOraANSI(SysNow),11,2))
end function
Function Secondi(SysNow)
Secondi=cInt(mid(DataOraANSI(SysNow),13,2))
end function
Function Data
Data=dateSerial(Anno,Mese,Giorno)
end function
Function Tempo
Tempo=timeSerial(Ora,Minuti,Secondi)
end function
%>
|
Numero di lettori:
|