Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466

    [JS]Confronto fra date un po' particolare

    Almeno penso.

    Il fatto è che le date vengono immesse attraverso dei list box, per cui ho

    codice:
    <SELECT NAME="giorno">
    <OPTION>1
    <OPTION>2
    <OPTION>3
    .
    .
    .
    .
    <SELECT>
    
    <SELECT NAME="mese">
    <OPTION>1
    <OPTION>2
    <OPTION>3
    .
    .
    .
    .
    <SELECT>
    
    <SELECT NAME="anno">
    <OPTION>2004
    <OPTION>2005
    <OPTION>2006
    .
    .
    .
    .
    <SELECT>
    
    
    <SELECT NAME="giorno1">
    <OPTION>1
    <OPTION>2
    <OPTION>3
    .
    .
    .
    .
    <SELECT>
    
    <SELECT NAME="mese1">
    <OPTION>1
    <OPTION>2
    <OPTION>3
    .
    .
    .
    .
    <SELECT>
    
    <SELECT NAME="anno1">
    <OPTION>2004
    <OPTION>2005
    <OPTION>2006
    .
    .
    .
    .
    <SELECT>
    Vorrei controllare che la prima data sia antecedente la seconda

    Ho visto che ci sono diverse discussioni in rilievo ma il problema nel mio caso è che le date vengono formate attraverso tre differenti campi (per data)

    Grazie, Mc

  2. #2
    devi costruirti, trammite l'apposita sintassi del costruttore , le 2 date prendendo i valori della select opportunatamente formattati , e dopochè puoi confrontare le date .

    Bye

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Il problema è che non lo riesco a fare, mi puoi fare un esempio?

    Grazie, Mc

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Niente, ci sono riuscito, grazie lo stesso

    Mc

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Ho fatto così:

    codice:
    var data=campo.elements['gg'].value+"/"+campo.elements['mm'].value+"/"+campo.elements['aaaa'].value;
    Esiste un modo + furbo?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che esiste:
    Se vuoi confrontare le date, ti conviene metterle sassieme in modo da poter fare un confronto alfabetico:
    codice:
    function confr_date(ff) {
      var data0 = ff.anno.value;
      data0 += "/"+ff.mese.value;
      data0 += "/"+ff.giorno.value;
    
      var data1 = ff.anno1.value;
      data1 += "/"+ff.mese1.value;
      data1 += "/"+ff.giorno1.value;
      if(data0 > data1) { 
        ....
      }
    }
    Nota le opzioni devono essere di questo tipo (con il value e lo zero nel value):

    <select name="giorno">
    <option value="01">1</option>
    <option value="02">2</option>
    <option value="03">3</option>
    ...
    </select>
    ...

    La funzione va chiamata con:
    <form .. onsubmit="return confr_date(this);">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Grazie mille, Mc

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Non funziona.

    Se metto

    data1: 16/07/2004
    data2: 15/08/2004

    Mi dice che data 2 è antecedente data1 come se fermasse il controllo al giorno.

    Perchè?

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Io ti ho dato una traccia, non ho svilupato tutta la funzione. Tra l'altro non ho guardato quale dovesse essere prima.

    Comunque inserisci un alert prima di fare il confronto, per vedere cosa scrive dentro la funzione:

    function confr_date(ff) {
    var data0 = ff.anno.value;
    data0 += "/"+ff.mese.value;
    data0 += "/"+ff.giorno.value;

    var data1 = ff.anno1.value;
    data1 += "/"+ff.mese1.value;
    data1 += "/"+ff.giorno1.value;
    alert(data0+" "+data1);
    if(data0 > data1) {
    ....
    }
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    466
    Mich_ ti chiedo scusa, sono io che sono scemo.

    Avevo messo la data gg/mm/aaaa invece che aaaa/mm/dd come da te suggerito.

    Scusami tanto se ti ho fatto perdere del tempo.

    Mc

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.