Newsgroup: it.comp.www.asp
Titolo: Forzare l'anno a 4 cifre

Ciao a tutti...
Ho un problemino, il mio sito in locale utilizza le date cosi' formate:
gg/mm/aaaa, ma purtroppo sul server dove e' ospitato quando chiedo una data
ad database access mi viene restituita gg/mm/aa con solo 2 numeri dell'anno
anziche' 4... Si intende che sul db le cifre per l'anno sono 4 e quando le
scrivo, le scrivo sempre in formato gg/mm/aaaa...
Cosa posso fare?
C'e' un modo di obbligare la restituzione dell'anno a 4 cifre?
Mi e' capitato che per una modifica sul server (modifica poi ripristinata)
le date venivano restituite in formato mm/gg/aa, non c'e' un modo (oltre a
session.lcid=1040 che sembra non avere effetto) per forzare il modo di
restituire la data?
Purtroppo non posso immettere la data in un campo stringa, evitando cosi' il
controllo da parte del server/db, ma purtroppo mi server come data vera e
propria per via di un ordinamento per data...
fatemi sapere!
Ciao ;^)=
--
Massimo "Red Foxy" Ciccio'
Home Page: 
http://www.redfoxy.go.to/
Web Master di:
 - Libreria Ciofalo: 
http://www.ciofalo.it
 - Quantum Leap: 
http://ql.programmazione.it
..<-------- Se ricevo spam denuncio l'autore al server ------->.
..o0 ------------------------------------------------------- 0o.
..o0 --------- Dentro ognuno di noi c'e' un animale, ------- 0o.
..o0 ----------- sta' a noi scoprirlo e domarlo ------------ 0o.
..o0 ------------------------------------------------------- 0o.
..o0 --- Non c'e' uomo che non abbia paura dell'animale, --- 0o.
..o0 --------- non esiste uomo che non sia animale --------- 0o.
..o0 ------------------------------------------------------- 0o.
..o0 ------------------------------------------- Red Foxy -- 0o.

 restituire la data?
potresti usare la funzione
Dateserial(anno, mese, giorno)
ciao
--
Kappa
kappa**nospam**@
webngo.net
www.webngo.net

> Dateserial(anno, mese, giorno)
No non credo sia una soluzione al mio problema...


Fatti una bella funzione con  DatePart(interval, date[, firstdayofweek[,
firstweekofyear]]) del tipo
function databellissima(dataschifosa)
   if isDate(dataschifosa) then
     databellissima=DatePart("g",dataschifosa) & "/"&
DatePart("m",dataschifosa)& "/" & DatePart("yyyy",dataschifosa)
   end if
end function
O no?
LCID ti può funzionare, se effettivamente sul server, oltre alle
impostazioni locali di sistema, sono state caricate quelle internazionali.
Sulla metà dei server che conosco, no.
Ciao!
Paolo


Moderatore di it.comp.www.asp
Sito di supporto: 
http://www.aspitalia.com/newsgroup/
La più grande community italiana di sviluppatori!

> Year(Now()) quante te ne ritorna?
a 4 cifre, mentre se chiedo il campo data del database mi restituisce
gg/mm/yy


 end function
Il server e' un server NT4 con ASP 2, usando il tuo codice mi da questo
errore:
Errore di run-time di Microsoft VBScript error '800a0005'
Chiamata di routine o argomento non validi: 'DatePart'
/test.asp, line 22


propria per via di un ordinamento per data...
Questa non la capisco bene: tu nel database memorizzi la data usando
le convenzioni che ho scritto sopra e lui l'interpreta come data,
facendo tutti gli ordinamenti correttamente.
Io uso una mia funzione italianDateFormat, che ti posto sotto:
'***********************************************
function twoChars( strToHandle )
'***********************************************
  if len( strToHandle ) < 2 then
  	twoChars = "0" & strToHandle
  else
  	twoChars = strToHandle
  end if
end function 
'***********************************************
function italianDateFormat( strDate )
'***********************************************
	italianDateFormat = twoChars( day(strDate) ) & "/" & twoChars(
month(strDate) ) & "/" & year(strDate)
end function
La funzione di appoggio twoChars sarebbe piu' elegante se usasse le
funzioni predefinite left e pad, ma quando l'ho scritta non le
conoscevo...
Ultimo piccolo suggerimento (a cui avrai sicuramente gia' pensato),
per ordinare date come stringhe, basta giustapporre nell'ordine anno
(4 cifre), mese (due cifre) e giorno (due cifre).
Ciao!
Glauco, Mantova
www.serate.it

 ha scritto nel messaggio
news:EL7r6.11737$x3.2...@news2.tin.it...

> Chiamata di routine o argomento non validi: 'DatePart'
Giusto!
Mi dimenticavo che siamo anglodipendenti. Al posto di "g" serve "d" !
function databellissima(dataschifosa)
if isDate(dataschifosa) then
      databellissima=DatePart("d",dataschifosa) & "/"&
DatePart("m",dataschifosa)& "/" & DatePart("yyyy",dataschifosa)
   end if
end function
Comunque... un piccolo controllo nella documentazione di VBScript, potevi
farlo anche da solo, anziche copiare al volo la routine.
....e se ti mandavo un bello script del tipo "format c:" che facevi? Lo
testavi senza pensarci?
Salutoni e buon lavoro
Paolo

 ******
Grazie per il valido suggerimento, ma utilizzando quello di Paolo, si
possono avere le date in qualsiasi formato in modo indipendente da come li
passa/modifica il server dove viene gestito il tutto!
Il tutto usando una sola function ;)
Praticamente a te serve la data in formato dd/mm/aaaa ma il server ti
obblica dd/mm/aa e poi magari sono tanto stronzi da cambiare di punto in
bianco e farla diventare mm/dd/aa (mi e' capitato proprio questo!!!),
facendo passare la data in quella funzione ti restituisce sempre in tipo
data ma con il formato dd/mm/aaaa indipendentemente da come l'hai salvato
sul DB o da come te lo passa il server!!!
Molto comodo ;)
Ciao e grazie ancora ;^)=


 gg/mm/yy
e se fai Year( rs("data") ) ?
