Somma anni ad una data con datepicker

  • Creatore Discussione Creatore Discussione Vera
  • Data di inizio Data di inizio

Vera

Utente Attivo
3 Giu 2014
76
1
8
Buongiorno a tutti,

ho questo codice in Html/javascript che non fa altro che ad una data inserita mi aggiunge 5 anni.

Le due righe html per l'inserimento della data, la prima riga inserisce la data con il datepicker nel campo, la seconda riga visualizza la stessa data aumentata di 5 anni

HTML:
<tr><td>Data rilascio</td><td><input class="form-control dtmmaa" type="text" name="DTRILA<?php echo $number;?>" data-date-format="dd/mm/yyyy" aria-describedby="basic-addon1" placeholder="gg/mm/aaaa" maxlength="12"></td></tr>
                                <tr><td>Data scadenza</td><td><input class="form-control dtmmaa" type="text" name="DTSCAD<?php echo $number;?>" id='DTSCAD' data-date-format="dd/mm/yyyy" aria-describedby="basic-addon1" placeholder="gg/mm/aaaa" maxlength="12"></td></tr>
                                <!--<tr><td>Data scadenza</td><td><input name="DTSCAD" id='DTSCAD' type="text" class="form-control" placeholder="gg/mm/aaaa" aria-describedby="basic-addon1"></td></tr> -->

il relativo javascript con il datepicker:

Codice:
<script type="text/javascript">
$(function() {
    $('.dtmmaa').datepicker({
    monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'],   
    startView: "months",
    format: 'dd/mm/yyyy', 
    language: "it",
    todayHighlight: true,         
    }).on('changeDate', function(e){
        
    var newData = new Date(new Date(e.date).setYear(e.date.getFullYear()+5));
    var dd = newData.getDate();
    if(dd < 10){dd = '0'.concat(dd)}   
    if((newData.getMonth()+1) < 10){var mm = '0'.concat(newData.getMonth()+1);}else{var mm = newData.getMonth()+1;}
    //var mm = newData.getMonth()+1;
    var yyyy = newData.getFullYear();     
    var newData = dd+'/'+mm+'/'+yyyy;         
    $('input[name=DTSCAD]').val(newData);
    $(this).datepicker('hide');
    });
    $('input[name=DTSCAD]').prop('readonly', true);
});
</script>

Attualmente il secondo campo del codice HTML mi viene valorizzato in automatico con la data aumentata di 5 anni. Ad esempio oggi 21/04/2017 (prima riga html (DTRILA)) e risultante della seconda riga html campo DTSCAD valorizzata al 21/04/2022.
Fin qui tutto bene, ma avrei bisogno che la seconda data mi venisse valorizzata al 30/04/2022 e non al 21/04/2022, cioé aumentata di 5 anni e calcolata a fine mese. Credo che si possa fare intervenendo nel codice javascript che vi ho postato.

Grazie per il vostro aiuto
V
 
Ciao, puoi recuperare l'ultimo giorno del mese sempre con l'oggetto Date() di javascript in questo modo
Codice:
var d = new Date(newData.getFullYear(), newData.getMonth() + 1, 0);
var dd = d.getDate();
if (dd < 10) {
     dd = '0'.concat(dd)
}
Ho qualche dubbio sulla funzionalità del codice che hai postato :
l'evento .on('changeDate' non l'ho mai visto
dovrebbe essere solo
.on('change'
 

Discussioni simili