Ciao ragazzi!
Vi spiego subito il mio problema:
ho questi input:
Codice PHP:
<input type="text" name="pre_dalgiorno" value="1" size="1"></div>
</td>
<td class="dentrsmall" bgcolor="#eae2ca"><select name="pre_dalmese" size="1">
<option value="01">Gennaio</option>
<option value="02">Febbraio</option>
<option value="03">Marzo</option>
<option value="04">Aprile</option>
<option value="05">Maggio</option>
<option value="06">Giugno</option>
<option value="07">Luglio</option>
<option value="08">Agosto</option>
<option value="09">Settembre</option>
<option value="10">Ottobre</option>
<option value="11">Novembre</option>
<option value="12">Dicembre</option>
</select></td>
<td class="dentrsmall" bgcolor="#eae2ca"><select name="pre_dallanno" size="1">
<option value="2006">2006</option>
<option value="2007">2007</option>
<option value="2008">2008</option>
</select></td>
Vorrei fare un controllo che verifica che la data inserita in "pre_dalgiorno" "pre_dallanno" e "pre_dalmese" non precedano la data attuale.
questo è il javascript:
Codice PHP:
<script type="text/javascript">
function veridata(){
data=new Date();
datax= data.getTime()/1000;
datax=<?php print $dataora; ?>;
dataarrivo= new Date(document.prenota.pre_dallanno.options[document.prenota.pre_dallanno.selectedIndex].value,document.prenota.pre_dalmese.options[document.prenota.pre_dalmese.selectedIndex].value,document.prenota.pre_dalgiorno.value);
dataarrivox= dataarrivo.getTime()/1000;
datapartenza= new Date(document.prenota.pre_allanno.options[document.prenota.pre_allanno.selectedIndex].value,document.prenota.pre_almese.options[document.prenota.pre_almese.selectedIndex].value,document.prenota.pre_algiorno.value);
datapartenzax= datapartenza.getTime()/1000;
alert(datax);
alert(dataarrivox);
if((datapartenzax <= dataarrivox) || (dataarrivox <= datax)){
alert("Errore nella immissione delle date Verificare che la data di partenza non preceda quella di arrivo o che il periodo di permanenza non preceda la data attuale.");
return false;
}
else {
document.prenota.action="prenota.php";
document.prenota.submit();
}
}
</script>
ho provato sia con date() in javascript sia dandogli un UNIXtimestamp da PHP ma i risultati sono uguali. Ovvero nel controllo(if((datapartenzax <= dataarrivox) || (dataarrivox <= datax))) Verifico che la data di partenza non preceda quella di arrivo e subito dopo vorrei controllare che la data di arrivo non preceda la data attuale. Ma nonostante credo di non aver fatto errori il sistema non funziona, restituendo quell'alert solo se la data di partenza precede quella di arrivo e non se quella di arrivo precede quella attuale. Ma quello che succede è ben più strano... Se metto come mese "Ottobre 2006" e qualunque giorno mi restituisce l'errore, nelc aso in cui il mese sia Novembre (il mese corrente) non mi da errore neanche se metto il 12(la data di ieri). Ho usato quegli alert per prendere nota dei timestamp.
Bene il timestamp di ieri per java o php era 1.163.364.587 e quello invece calcolato con date(aa,mm,gg) era 1.165.878.000 ... quindi non è sbagliato che mi dice che la data è maggiore.... azz sto impazzendo... help!