Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692

    Problema con validazione data e ora

    Ciao.

    Cosa sbaglio in questo codice?

    In teoria non dovrebbe validare il form quando :

    1) la data è diversa da quella di oggi ( data inferiore o superiore ) ;
    2) l' orario inserito inferiore di due ore rispetto all'orario del client.

    Invece valida questi valori : 08/09/2008 - 23:55 ( sbagliato )
    Non valida questi valori : 22/09/2008 - 23:55 ( sbagliato )
    Non valida questi valori : 23/09/2008 - 23:55 ( giusto )

    :master:

    codice:
     var dateStr = document.orario.Data_visita.value.split("/");
     var timeStr = document.orario.Ora_visita.value.split(":");
     
     var oldDate  = new Date(dateStr[2],dateStr[1]-1,dateStr[0],timeStr[0],timeStr[1]);
     var currDate = new Date();
    
     var oldTimestamp  = oldDate.valueOf();
     var currTimestamp = currDate.valueOf();
    
     if ((currTimestamp - oldTimestamp) < (1000 * 60 * 60 * 2)) 
     
         {
        
          alert("Errore.");
          return(false);
          
        }
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Che c'azzecca .valueOf() :master:

    Sottrai direttamente le date:

    if ((currDate - oldDate) < (1000 * 60 * 60 * 2))

    Inoltre la domanda non e' chiara.... la differenza di due ora vale per qualunque giorno diverso da oggi ?

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Grazie, ma funziona esattamente come prima.

    Il form deve essere validato solo quando:

    1) la data inserita nel form è uguale alla data di oggi ;
    2) l' orario inserito è inferiore di due ore rispetto all'orario del client ed alla data di oggi.

    Esempi:

    Oggi è il 23/09/20008 e sono le ore 09:00

    08/09/2008 - 23:55 Non deve essere validato ( la data è diversa da oggi 23/09/2008 )
    29/09/2008 - 23:55 Non deve essere validato ( la data è diversa da oggi 23/09/2008 )

    23/09/2008 - 09:30 Non deve essere validato ( orario inferiore di due ore rispetto all'orario del client - ore 09:00 )

    23/09/2008 - 11:30 Deve essere validato ( orario superiore di due ore rispetto all'orario del client - ore 09:00 )

    Spero sia più chiaro.
    ciao
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da orcim
    23/09/2008 - 09:30 Non deve essere validato ( orario inferiore di due ore rispetto all'orario del client - ore 09:00 )

    23/09/2008 - 11:30 Deve essere validato ( orario superiore di due ore rispetto all'orario del client - ore 09:00 )



    if ((oldDate - currDate) < (1000 * 60 * 60 * 2))

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    Originariamente inviato da br1


    if ((oldDate - currDate) < (1000 * 60 * 60 * 2))

    ciao
    Grazie, ma valida questo ed è sbagliato:

    29/09/2008 - 23:55 Non deve essere validato ( la data è diversa da oggi 23/09/2008 )

    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    if ((oldDate - currDate) < (1000 * 60 * 60 * 2) || oldDate.getFullYear()*10000+oldDate.getMonth()*100 +oldDate.getDate() != currDate.getFullYear()*10000+currDate.getMonth()*1 00+currDate.getDate())
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it L'avatar di orcim
    Registrato dal
    May 2003
    Messaggi
    1,692
    M I T I C O

    Grazie
    "Ubi Maior, Minor Cessat"
    Domandare è lecito, rispondere è cortesia...
    A tutti è dovuta una risposta, comunque...

    “Dio gradisce molto di più le bestemmie dell’uomo disperato che non le lodi del benpensante la domenica mattina durante il culto“ Martin Lutero

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.