Ciao,
ho due date es
31/12/2004
10/01/32005
come faccio a ricavarmi i giorni di differenza tra le due date?
grazie
Ciao,
ho due date es
31/12/2004
10/01/32005
come faccio a ricavarmi i giorni di differenza tra le due date?
grazie
var prima = new Date(2004, 11, 31);
var seconda = new Date(2005, 0, 10);
diff = (seconda - prima) / (1000 * 3600 * 24);
Forse occorre anche arrotondare, ma prima prova (in teoria non serve, ma in pratica non so se fa i conti con interi o float).
per scrivere i dati nelle variabili prima e seconda (supponendo che siano dei campi di input con formattazione 31/1/2004) puoi usare:
var l_prima = document.NOMEFORM.NOMECAMPO.value;
var vett = l_prima.split(/[\-\.\/]/);
var prima = new Date(vett[2], parseInt(vett[1],10)-1, vett[0]);
... similmente per seconda ...
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ok lo provo grazie
funziona perfettamente ma il problema è che io ho la data in questo formato:
una: 21/10/2004
come la setto?
ps
Mich, sai come si fa in perl che forse mi viene piu comoda, la diff tra due date? - ho aperto anche la...
Lo script che ti ho dato dovrebbe funzionare per tutti i tipi di formattazione (con separatore a scelta tra - / . ) purche` rispettino l'ordine gg/mm/aaaa.
Va bene anche g/m/aaaa o gg/m/aaaa o g/mm/aaaa
Si puo` anche fare in modo che funzioni con l'anno a 2 cifre, ma questo comporta qualche riga in piu` di programmazione.
Per il Perl, la cosa e` simile: occorre trasformare in formato interno del Perl e poi fare la differenza (tieni presente che in Perl il dato e` in secondi, se non erro, non in millisec).
Vedi comunque la pagina del manuale di time o localtime.
Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
No domande tecniche in messaggi privati
ok grazie
questo script dovrebbe fare al caso mio. Solo che ho un problemino d'adattamento.
Ho un form di prenotazione, con 2 campi (data_arrivo e data_partenza); sotto a questi 2 campi ne ho un terzo con il numero delle notti e vorrei che numero_notti si riempisse automaticamente SOLO quando i 2 campi data sono a loro volta pieni. Come la posso fare una cosa del genere?
Grazie mille!![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
scrivi il dato nel terzo campo:
- all'onchange del primo campo se non è vuoto e il secondo non è vuoto
- all'onchange del secondo campo se non è vuoto e il primo non è vuoto
all'onchange richiami una funziona che fa questi due controlli
Vuoi aiutare la riforestazione responsabile?
Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)
Innanzitutto ti ringrazio per la risposta, però non mi funziona...
la funzione js che uso è:
e i due campi con le date sono questi:codice:function diffDate(){ var diff; var l_prima = document.getElementById('data_arrivo').value; var vett1 = l_prima.split(/[\-\.\/]/); var prima = new Date(vett1[2], parseInt(vett1[1],10)-1, vett1[0]); var l_seconda = document.getElementById('data_partenza').value; var vett2 = l_seconda.split(/[\-\.\/]/); var seconda = new Date(vett2[2], parseInt(vett2[1],10)-1, vett2[0]); diff = (seconda - prima) / (1000 * 3600 * 24); if (diff<0) alert("La data di partenza deve essere maggiore di quella d'arrivo!"); else document.getElementById('notti').value = diff; }
li ho messi a readonly perché la data me la selezionano da un calendarietto che si apre in pop-up, onde evitare ulteriori controlli sul cmapo data.codice:<input type="text" name="data_arrivo" id="data_arrivo" value="<?php echo $data_arrivo; ?>" readonly="readonly" onchange="diffDate(); " /> <input name="data_partenza" type="text" id="partenza" value="<?php echo $data_partenza; ?>" readonly="readonly" onchange="diffDate(); " />
però quando cambio le due date il campo notti non si aggiorna. Si aggiorna solo se clicco sul campo di testo, in quanto ho messo l'esecuzione della funzione anche all'evento onclick sul campo notti:
codice:<input name="notti" type="text" id="notti" value="<?php echo $notti; ?>" size="2" maxlength="2" onclick="diffDate(); " />
ho fatto qualcosa di sbagliato? eh, mi sa di sì, se no funzionerebbe![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone
dai non potete abbandonarmi così ad un passo dal traguardo![]()
Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone