ciao! ho un problema di calcolo con un periodo ke comprende il 29 febbraio..
premetto che javascript lo uso marginalmente e sono di poco al di sopra dell'essere un utonto in questo campo comunque ho cercato qualche thread ma non ho trovato niente che mi dava una soluzione al mio problema.
ho un form al cui interno digito un periodo dal - al e di cui calcolo l'intervallo che confronto
con il dato inserito nel successivo campo giorni, se l'intervallo comprende la data del 29 febbraio il sistema mi calcola due giorni in più. WHY??
questa è la funzione di calcolo dell'intervallo
Codice PHP:
function InvioM(){
var giorni = document.modulo.giorni.value;
var dal = document.modulo.dal.value;
var al = document.modulo.al.value;
val1 = parseInt(document.modulo.zero.value);
val2 = parseInt(document.modulo.cento.value);
val3 = parseInt(document.modulo.cinquanta.value);
val4 = parseInt(document.modulo.rhcento.value);
val5 = parseInt(document.modulo.rhcinquanta.value);
val6 = parseInt(document.modulo.rcento.value);
val7 = parseInt(document.modulo.rcinquanta.value);
totale = val1+val2+val3+val4+val5+val6+val7;
var temp1 = dal.split(/[\-\.\/]/);
var temp2 = al.split(/[\-\.\/]/);
/*var dataI = new Date(temp1[2], parseInt(temp1[1],10), temp1[0]);
var dataF = new Date(temp2[2], parseInt(temp2[1],10), temp2[0]);
calcolo = Math.round((dataF - dataI) / (1000 * 3600 * 24) + 1) ; */
if ((giorni == "")){
alert("il campo giorni deve essere diverso da 0 e contenere solo numeri ");
document.modulo.giorni.focus();
return false;
}
else if (giorni != Math.floor(calcolo)){
alert("Attenzione il valore non corrisponde alla differenza tra tot giorni inseriti "+giorni+" e calcolo della diff delle date "+calcolo+"");
return false;
}
else if ((totale ==0) || (giorni != totale)){
alert("la somma dei campi giorni è sbagliata "+giorni+"-->"+totale+"");
return false;
}
else {
document.modulo.action = "index.php";
document.modulo.submit();
}
}
mentre qui ho il form
Codice PHP:
<form method="post" name="modulo">
<input name="cid" type="hidden" value="<?php echo $Cid; ?>" />
<input name="area" type="hidden" value="<?php echo $AREA; ?>" />
<table width="100%" border="2" cellspacing="1" cellpadding="1">
<tr>
<th>Dal</th>
<td><input name="dal" type="text" onChange="VdataA()" value="00-00-0000" size="8" class="minus"/></td>
<th>Al</th>
<td><input type="text" name="al" onChange="VdataB()" value="00-00-0000" size="8" class="minus" /></td>
<tr>
<th>giorni</th>
<td><input type="text" name="giorni" size="3" class="minus" /></td>
<th>Non Retrib. </th>
<td><input type="text" name="zero" value="0" size="3" class="minus" /></td>
</tr>
<tr>
<th>100%</th>
<td><input type="text" name="cento" value="0" size="3" class="minus" /></td>
<th>50%</th>
<td><input type="text" name="cinquanta" value="0" size="3" class="minus" /></td>
</tr>
<tr>
<th>RH 100%</th>
<td><input type="text" name="rhcento" value="0" size="3" class="minus" /></td>
<th>RH 50%</th>
<td><input type="text" name="rhcinquanta" value="0" size="3" class="minus" /></td>
</tr>
<tr>
<th>R 100%</th>
<td><input type="text" name="rcento" value="0" size="3" class="minus" /></td>
<th>R 50%</th>
<td><input type="text" name="rcinquanta" value="0" size="3" class="minus" /></td>
</tr>
<tr>
<td colspan="4" align="center">
<input type="button" value="INVIO" onclick="InvioM()"/></td>
</tr>
</table>
</form>
grazie a tutti