HighDots Forums  

Date diverse

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Date diverse in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
jack66
 
Posts: n/a

Default Date diverse - 05-25-2008 , 01:28 PM






Salve a tutto il NG, grazie in anticipo a chi avrà la pazienza di
rispondermi.
Il mio problema è questo: da una data iniziale che estraggo da un form devo
estrapolare il primo e l'ultimo giorno della settimana.
quindi ho qualcosa del tipo
var Data= new Date(anno_sul_form,mese_sul_form,giorno_sul_form);
var DataInizioSettimana=new Date();
var FineSettimana=new Date();

DatainizioSettimana.setYear(Data.getFullyear);//anno
DataInizioSettimana.setMonth(Data.getMonth);//mese
DataInizioSettimana.setDate(data.getDate()-n);//(n=calcolo dei giorni da
sotrarre)

FineSettimana.setYear(Data.getFullyear);//anno
FineSettimana.setMonth(Data.getMonth);//mese
FineSettimana.setDate(data.getDate() + n);//(n=calcolo dei giorni da
sommare)

mi funziona tutto fino al primo giorno della settimana poi ho solo date
delle quali non capisco il senso.
help me!


Reply With Quote
  #2  
Old   
ZER0
 
Posts: n/a

Default Re: Date diverse - 05-25-2008 , 01:52 PM






jack66 <jack66 (AT) hotmail (DOT) com> wrote:

Quote:
Salve a tutto il NG, grazie in anticipo a chi avrà la pazienza di
rispondermi.
Salve a te.

Quote:
Il mio problema è questo: da una data iniziale che estraggo da un form devo
estrapolare il primo e l'ultimo giorno della settimana.
Va visto cosa consideri come primo giorno della settimana, e come
ultimo.

Quote:
quindi ho qualcosa del tipo
var Data= new Date(anno_sul_form,mese_sul_form,giorno_sul_form);
Hai considerato che i mesi vanno da 0 (Gennaio) a 11 (Dicembre) e
non da 1 a 12, vero? Perché altrimenti devi sottrarre 1 al valore
immesso nel form, e quindi:

var Data = new Date( anno, mese - 1, giorno);

Quote:
var DataInizioSettimana=new Date();
var FineSettimana=new Date();
Così però vai a recuperare la data corrente, comprensiva anche di
ore, minuti, secondi e millisecondi. Ma visto che vai a duplicare
la data iniziale, tranne che per il giorno, ti conviene fare:

var DataInizioSettimana = new Date( Data ),
DataFineSettimana = new Date( Data );

Così quello che dovrai fare dopo, sarà solamente il setDate():

DataInizioSettimana.setDate( Data.getDate() - n );

Senza necessità di impostare anno e mese.

Quote:
DatainizioSettimana.setYear(Data.getFullyear);//anno
DataInizioSettimana.setMonth(Data.getMonth);//mese
getFullYear() e getMonth() sono metodi. In questo modo non li vai
ad invocare, quindi può darsi che le date strane fossero dovute a
questo fattore.

Se così non fosse, significa che ciò che sbagli è il valore di n,
che non hai specificato come vai a recuperarlo.


--
"Se c'è qualcosa di più importante del mio ego su questa nave,
la voglio catturata e fucilata."


Reply With Quote
  #3  
Old   
Dr J R Stockton
 
Posts: n/a

Default Re: Date diverse - 05-26-2008 , 11:01 AM



In it.comp.lang.javascript messaggio <4839afc1$0$35956$4fafbaef (AT) reader2 (DOT)
news.tin.it>, dom, 25 Maggio 2008 20:28:19, jack66 <jack66 (AT) hotmail (DOT) com>
ha scritto:

Quote:
Il mio problema è questo: da una data iniziale che estraggo da un form
devo estrapolare il primo e l'ultimo giorno della settimana.

var Data= new Date(anno_sul_form,mese_sul_form,giorno_sul_form);
mese-1 ?

"il primo e l'ultimo giorno della settimana" - sono quelle da Lunedi a
Domenica o Domenica a Sabato?

var D1 = new Date(+Data) // Copia data; utilizzando + può essere meglio
DoS = D1.getDay() // Giorno della settimana, dom = 0 a sab = 6
X = 1 // Giorno della settimana richiesti, dom = 0 o 7, sab = 6
D1.setDate( D1.getDate() + (7 + X - DoS) % 7 )
// In avanti da 0 a 6 giorni

var D2 = new Date(+Data)
DoS = D1.getDay()
X = 1
D2.setDate( D2.getDate() - (7 - X + DoS) % 7 ) // Torna 0 a 6 giorni

Prova quelli attenzione!

È una buona idea di leggere il newsgroup CLJ e le sue FAQ. Vedere qui di
seguito. E <URL:http://www.merlyn.demon.co.uk/js-dates.htm> ?

--
(c) John Stockton, nr London UK. ?@merlyn.demon.co.uk IE7 FF2 Op9 Sf3
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htm> jscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.


Reply With Quote
  #4  
Old   
jack66
 
Posts: n/a

Default Re: Date diverse - 05-26-2008 , 11:21 AM




Si ho inizializzato tutto tenendo conto del mese e settando il primo giorno
come Lunedì e l'ultimo come Domenica (tenendo conto che Gennaio e la
Domenica hanno valore 0)

una volta recuperata dal Form la data che mi interessa sottraggo ,a seconda
del getDay es :getDay ==3 >> Data.setDate(Data.getDate()-2))
un valore a Data e aggiungo 6 a DataInizio così se per esempio ho un
mercoledì 3 come Data, avrò un Lunedì 1 come DataInizio e Domenica 7 come
DataFine.
Solo che se calcolo ad esempio oggi 2008-5-26 ho tre data corrette
Lun 26 5 2008 -Inizio(getDay==1 valore da sottrarre = 0)
lun 26 5 2008 -data estratta dal form
dom 1 6 2008 -data fine

se calcolo il 1-1-2008
mi da:
lun 31 dic 2007 (ok)
mar 1 gen 2008(ok)
dom 6 febbraio !!!!!!!!!!
che fare?
spero di essere stato chiaro


Reply With Quote
  #5  
Old   
ZER0
 
Posts: n/a

Default Re: Date diverse - 05-26-2008 , 12:07 PM



On Mon, 26 May 2008 18:21:53 +0200, jack66 wrote:

[cut]
Quote:
se calcolo il 1-1-2008
mi da:
lun 31 dic 2007 (ok)
mar 1 gen 2008(ok)
dom 6 febbraio !!!!!!!!!!
Evidentemente non gli stai sommando il valore corretto. Per
intenderci:

var anno = "2008", mese="1", giorno ="1";
var Data = new Date( anno, mese - 1, giorno);

var FineSettimana=new Date( Data );

FineSettimana.setDate( Data.getDate()+6 )
alert(FineSettimana)

Questo ha da funzionarti.
Se non ti funziona, è il tuo browser ad esser bacato. Se ti
funziona, allora non hai seguito il mio consiglio di andare
a duplicare la data, e/o il valore di "n" non è pari a "6",
con quella specifica data (1/1/2008).

--
~ "Solo i morti hanno visto la fine della guerra."
(Platone)



Reply With Quote
  #6  
Old   
jack66
 
Posts: n/a

Default Re: Date diverse - 05-26-2008 , 03:39 PM



ok, ho risolto.
DataFine=new
Date(InizioSettimana.getFullYear(),InizioSettimana .getMonth(),(InizioSettimana.getDate()+6);
ora però ho scoperto che tutto questo funziona solo su IE perchè su FireFox
quando cerco di recuperare i dati dal form (MioForm.MioControllo.value) non
ottengo assolutamente nulla.
Grazie comunque per l'aiuto sulle date.



Reply With Quote
  #7  
Old   
ZER0
 
Posts: n/a

Default Re: Date diverse - 05-26-2008 , 05:04 PM



On Mon, 26 May 2008 22:39:34 +0200, jack66 wrote:

Quote:
ok, ho risolto.
DataFine=new
Date(InizioSettimana.getFullYear(),InizioSettimana .getMonth(),(InizioSettimana.getDate()+6);
Ti ho già detto che puoi evitare di chiamare tutti questi metodi,
limitandoti unicamente al setDate():

DataFine = new Date(InizioSettimana);
DataFine.setDate( DataFine.getDate()+6 );

Quote:
ora però ho scoperto che tutto questo funziona solo su IE perchè su FireFox
quando cerco di recuperare i dati dal form (MioForm.MioControllo.value)
Questo perché non usi la forma corretta.
Presupponendo che "MioForm" sia il name della form:

document.forms["MioForm"].MioControllo.value

Quote:
Grazie comunque per l'aiuto sulle date.
De nada.

--
~ "L'arte non riproduce cio' che e' visibile,ma rende visibile cio'
che non sempre lo e'" (Paul Klee)



Reply With Quote
  #8  
Old   
jack66
 
Posts: n/a

Default Re: Date diverse - 05-27-2008 , 03:17 AM





Quote:
Questo perché non usi la forma corretta.
Presupponendo che "MioForm" sia il name della form:

document.forms["MioForm"].MioControllo.value
Grazie, ho corretto e funziona su entrambi i browser!



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.