Ciao a tutti. Stavo lavorando ad un progetto e mi sono imbatutto in un errore che non capisco.
Il programma deve prendere in input una data iniziale (uso il datepicker di jquery) nel formato dd/mm/yyyy e un numero di giorni sommare questi giorni alla data e restituirmi una data finale, niente di complicato...solo che arrivando al 31/10/2010 se gli sommo 1 rimane fermo al 31/10/2010 e di conseguenza mi sballa tutte le altre date di uno....non capisco onestamente dove possa essere sbagliato il codice javascript.
ecco il codice html/php:
e la funzione javascript:codice:<html> <?php $today = date("d/m/Y"); ?> <head> <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="js/script.js"></script> <script type="text/javascript" src="js/jquery-ui-1.8.5.custom.min.js"></script> <link type="text/css" href="css/jquery-ui-1.8.5.custom.css" rel="stylesheet" /> <script type="text/javascript"> <!-- $(document).ready(function(){ $('.datepicker').datepicker({ dateFormat: 'dd/mm/yy', // showOn: "button", // buttonImage: "css/images/calendar.gif", // buttonImageOnly: true }); }); --> </script> <title>Calcolo data</title> </head> <body> <form name="form1"> <input type="text" name="inception" class="datepicker" value="<?php echo $today; ?>" /> <input type="text" name="num_days" size="5" onchange="calcolaData(this.value);" /></p> <input type="text" name="expiration" /></p> </form> </body> </html>
codice:function calcolaData(days){ var dataStart = document.form1.inception.value.split("/"); var inception = new Date(dataStart[2], (dataStart[1]-1), dataStart[0]); var dataEnd = addDays(inception, days); alert(dataEnd); if(dataEnd.getDate() < 10){ var dayEnd = "0"+dataEnd.getDate(); } else{ var dayEnd = dataEnd.getDate(); } if((dataEnd.getMonth()+1) < 10){ var monthEnd = "0"+(dataEnd.getMonth()+1); } else{ var monthEnd = dataEnd.getMonth()+1; } document.form1.expiration.value = dayEnd + "/" + monthEnd + "/" + dataEnd.getFullYear(); } function addDays(data, giorni){ return new Date(data.getTime() + giorni*86400000) }

Rispondi quotando
...grazia ancora!!!
