Newsgroup: it.comp.lang.javascript
Titolo: Date asp & data javascript

All'interno di una funzione javascript devo estrarre anno, mese e giorno di
una data inserita in una form con la funzione Date() di Vbscript in questo
formato: 5/21/2001 12:03:23 AM
Ho provato con:
var f1 = document.MiaForm
pippo= getYear(f1.ct_data.value)
oppure
pippo= f1.ct_data.value.getYear()
Ma non funzionano.
Come si fa?
Saluti.
Luciano

 pippo= f1.ct_data.value.getYear()
ciao,
non mi e' chiaro cosa tu voglia fare esattamente con ASP/VBScript, cmq con
il JavaScript sul client sei fuori strada ;-)
getYear() (a proposito, usa l'equivalente getFullYear() che e' Y2K
compliant) e' un metodo dell'oggetto Date, la sintassi corretta sarebbe
  miadata.getFullYear()
senza argomenti, dove miadata e' un'istanza dell'oggetto Date, non una
stringa! (per toglierti dubbi consulta il reference del linguaggio).
La strada che devi seguire per ricavare l'anno da un campo di un form e'
presentare all'utente tre campi distinti (giorno, mese, anno) senza doverti
fare carico dell'onere di interpretare una stringa che puo' essere scritta
in diversi formati
Se poi per caso ti stai ponendo il problema perche' magari hai precompilato
il campo con ASP/VBScript, allora puoi fare altrettanto con i campi
distinti, usando le funzioni Day(), Month() e Year() di VBScript.
spero di esserti stato utile.
--
    Federico Sasso &8v>
 
http://www.crt.unige.it/jsSQL
    The jsSQL Project - JavaScript Database and SQL Engine

 il JavaScript sul client sei fuori strada ;-)
Provo a spiegarmi meglio:
Ho una textbox nascosta che l'ASP al caricamento riempe con la funzione
Date(), quindi con una cosa cosi':
5/21/2001 12:03:23 AM
Quando faccio il submit della form richiamo una funzione Javascrip che deve
settare il valore di altre textboxt nascoste prima di fare il submit.
Ovvero:
var f1 = document.MiaForm
f1.miatextbox.value = "pippo"
f1.submit
Ora, tre di queste textboxt devono essere riempite con anno, mese e giorno
prese dall'altra textbox. Non so se Javascript riconosce quello come formato
data o lo vede come stringa, in ogni caso mi serve di ricavare questi tre
valori e scriverli li.
In ASP/Vbscrip so come fare, con Javascript (e devo farlo per forza
cosi'!:-) no.
Saluti.
Luciano

   Scomponi la stringa, non credo che riconosce la data.  :((
Vlad

 valori e scriverli li.
semplice: basta provare ;-)
come vedi il codice sottostante funziona.
<html>
<head>
<script type="text/javascript">
function test()
{
 var adate, d, m, y;
 var strdate=document.forms["miaform"].hdate.value;
 adate = new Date(strdate);
 d = adate.getDate();
 m = adate.getMonth()+1;
 y = adate.getFullYear();
 alert(d);
 alert(m);
 alert(y);
}
</script>
</head>
<body>
<form name="miaform">
 <input type="hidden" name="hdate" value="5/21/2001 12:03:23 AM">
</form>
<a href="javascript:test();">Test</a>
</body>
</html>
cmq ti consiglio sempre di usare tre campi nascosti separati, eviti
sorprese.


 sorprese.
E' quello che ho fatto, infatti!:-)
Saluti.
Luciano

 ha scritto nel messaggio
news:9debfk$h5t5m$1...@ID-86073.news.dfncis.de...

I metodi per recuperare parti di una data si devono riferire a un
oggetto date non a una stringa;
un oggetto date si puo' creare passandogli vari tipi di parametri tra i
quali una stringa con vari formati
5/21/2001 12:03:23 PM
Mon May 21, 2001 12:03:23 PM
quindi e' sufficiente creare l'oggetto Date e poi recuperare le parti:
----------------
pippo= new Date(document.form1.ct_data.value);
document.form1.anno.value=pippo.getFullYear();
document.form1.mese.value=pippo.getMonth()+1; // in javascript i mesi
hanno la sequenza 0...11
document.form1.giorno.value=pippo.getDate();
----------------------
ovviamente, poiche' la data e' inserita dalla pagina ASP, non dovendo
modificarla sul client ha piu' senso scrivere i dati direttamente nei
campi anno, mese ecc con Asp e evitare sia il campo data completa sia il
codice javascript:
<INPUT type="hidden" name=anno value="<%=Year(Now)%>">
<INPUT type="hidden" name=mese value="<%=Month(Now)%>">
<INPUT type="hidden" name=giorno value="<%=Day(Now)%>">
Saluti, Paolo