- Home
- Categorie
- Coding e Sistemistica
- Coding
- [Risolto] aggiungere giorni
-
[Risolto] aggiungere giorni
ho una data nel formato YYYY-mm-dd
devo aggiungere a questa data un certo numero di giorni
come posso fare???
-
Ciao, benvenuto nel forum
Tieni uno scriptino fatto al volo
In pratica devi lavorare considerando i millisecondi trascorsi.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Sommare giorni ad una data</title> <script language="JavaScript" type="text/JavaScript"> <!-- function calcola(){ /* Script javascript per la sommare giorni ad una data realizzato da Claudioweb Claudio Matarrelli [email protected] */ var dataOggi = new Date() document.form.oggi.value = dataOggi.getFullYear() + "-"+ dataOggi.getMonth() +"-"+ dataOggi.getDate(); // millisecondi trascorsi fino ad ora dal 1/1/1970 var oggimilli = dataOggi.getTime(); // valore in millisecondi dei giorni da aggiungere var millisecondi = 24 * 60 * 60 * 1000 * document.form.giorni.value; //millisecondi alla data finale var milliseTotali = millisecondi + oggimilli; //data finale in millisecondi var dataFutura = new Date(milliseTotali); document.form.futuro.value = dataFutura.getFullYear() + "-"+ dataFutura.getMonth() +"-"+ dataFutura.getDate(); } --> </script> </head> <body onload="calcola();"> <form name="form"> <p>Data oggi<br /> <input name="oggi" type="text" readonly="readonly" /> </p> <p> <label> </label> <label>Giorni da sommare<br /> <input name="giorni" type="text" value="0" onkeyup="calcola();" /> </label> </p> <p>Data futura <br /> <input name="futuro" type="text" readonly="readonly" /> </p> </form> </body> </html>
-
Ciao Claudioweb
ho visto il tuo script, e non essendo un mago di js, ti chiedo se puoi aiutarmi.
Lo script mi presenta il mese di aprile nella forma (2009-4-19), deduco che bisogna correggere un valore, ma quale?
Quello che mi chiedo è: è possibile fare il calcolo delle scadenze (es. mensile, bimestrale, semestrale...) senza dover aggiungere nel form a mano i giorni per il conteggio? A me viene in mente che se assegno una variabile a mensile o a bimestrale potrebbe funzionare, ma come farlo fare in automatico?
Esempio: inserisco data1 '2009-05-19' e se fosse a scadenza annuale vorrei visualizzare in data2 '2010-05-19', se mensile '2009-06-19' ecc.. ecc..
Grazie in anticipo!
-
Ciao
Puoi cambiare l'ordine delle data modificando questa riga:
document.form.oggi.value = dataOggi.getFullYear() + "-"+ dataOggi.getMonth() +"-"+ dataOggi.getDate();
Ad esempio così:
document.form.oggi.value = dataOggi.getDate() + "-"+ dataOggi.getMonth() +"-"+ dataOggi.getFullYear();
Riguardo alla scadenza in automatico non ho capito bene cosa intendi.
Forse ti basta sostituire document.form.giorni.value con una variabile impostata a tuo piacimento.Ad ogni modo ti consiglio una lettura di una guida di base di javascript. Sono operazioni abbastanza semplici da fare e una breve lettura potrà chiarirti molte cose.
-
Ciao,credo di essermi spiegato male, il fatto è che a me visualizza la data di aprile (2009-04-19) non maggio.
Per la questione dell'automatico, cerco di spiegarmi meglio.
Quello che vorrei è:
riempire un form con una data 2008-06-25 e automaticamente, se la scadenza è annuale, nel campo sottostante appare la data 2009-06-25 frutto del calcolo javascript, quello che mi chiedo è, come assegnare alla scadenza annuale il valore $anno?grazie
-
Capito, c'era una piccola svista. Il metodo relativo ai mesi parte da zero per simmetria con un eventuale array con i nomi del mese.
L'utente predente era sparito, senza segnalare il problema.
Ora è corretto:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Sommare giorni ad una data</title> <script language="JavaScript" type="text/JavaScript"> <!-- function calcola(){ /* Script javascript per la sommare giorni ad una data realizzato da Claudioweb Claudio Matarrelli [email protected] */ var dataOggi = new Date() document.form.oggi.value = dataOggi.getFullYear() + "-"+ parseInt(dataOggi.getMonth()+1) +"-"+ dataOggi.getDate(); // millisecondi trascorsi fino ad ora dal 1/1/1970 var oggimilli = dataOggi.getTime(); // valore in millisecondi dei giorni da aggiungere var millisecondi = 24 * 60 * 60 * 1000 * document.form.giorni.value; //millisecondi alla data finale var milliseTotali = millisecondi + oggimilli; //data finale in millisecondi var dataFutura = new Date(milliseTotali); document.form.futuro.value = dataFutura.getFullYear() + "-"+ parseInt(dataFutura.getMonth()+1) +"-"+ dataFutura.getDate(); } --> </script> </head> <body onload="calcola();"> <form name="form"> <p>Data oggi<br /> <input name="oggi" type="text" readonly="readonly" /> </p> <p> <label> </label> <label>Giorni da sommare<br /> <input name="giorni" type="text" value="0" onkeyup="calcola();" /> </label> </p> <p>Data futura <br /> <input name="futuro" type="text" readonly="readonly" /> </p> </form> </body> </html>
Così adattato fa quello che desideri:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Sommare giorni ad una data</title> <script language="JavaScript" type="text/JavaScript"> <!-- function calcola(){ /* Script javascript per la sommare giorni ad una data realizzato da Claudioweb Claudio Matarrelli [email protected] */ var dataOggi = new Date() document.form.oggi.value = dataOggi.getFullYear() + "-"+ parseInt(dataOggi.getMonth()+1) +"-"+ dataOggi.getDate(); // millisecondi trascorsi fino ad ora dal 1/1/1970 var oggimilli = dataOggi.getTime(); //giorni da sommare giornidasommare = 365; // valore in millisecondi dei giorni da aggiungere var millisecondi = 24 * 60 * 60 * 1000 * giornidasommare; //millisecondi alla data finale var milliseTotali = millisecondi + oggimilli; //data finale in millisecondi var dataFutura = new Date(milliseTotali); document.form.futuro.value = dataFutura.getFullYear() + "-"+ parseInt(dataFutura.getMonth()+1) +"-"+ dataFutura.getDate(); } --> </script> </head> <body onload="calcola();"> <form name="form"> <p>Data oggi<br /> <input name="oggi" type="text" readonly="readonly" /> </p> <p> </p> <p>Data futura <br /> <input name="futuro" type="text" readonly="readonly" /> </p> </form> </body> </html>
Per altre eventuali personalizzazioni non posso che rimandarti ad una buona guida
-
Ciao,
grazie per la collaborazione, inizio a studiare, l'idea è quella di selezionare nel primo campo una data da jscalendar e, in automatico, assegnando la variabile (es. bimestrale), scrivere sul secondo campo la data + 2 mesi.