Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27

Discussione: [js] verifica data

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929

    [js] verifica data

    ciao a tutti,

    avrei bisogno di una mano a fare una funzione

    io devo controllare che che la prima data sia un sabato e che la seconda sia un venerdi e che la seconda data non sia antecedente alla prima

    è possibile fare una funziona cosi?

    sto iniziando cosi

    ho data1 (per capirci l'arrivo)
    codice:
    <input name="data1" type="text" id="data1" style="width:60px; height:19px; font-family:Tahoma; font-size:11px; background-color:#FFFFFF " maxlength="10">
    e data2 (per capirci la partenza)
    codice:
    <input name="data2" type="text" id="data2" style="width:60px; height:19px; font-family:Tahoma; font-size:11px; background-color:#FFFFFF " onChange="confronto (document.formData.data1,document.formData.data2)" maxlength="10">
    li vorrei passare a questa funzione solo che non sò come procedere con la costruzione della funzione, le data che passo sono in questo formato 7-9-2005
    codice:
    function confronto (data1,data2) {
    		if ( data1 < data2) {
    			alert ("INTERVALLO DI DATA NON VALIDO!");
    		}
    }
    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Devi trasformare le stringhe in oggetti di tipo Date, mediante la definizione dell'oggetto

    Poi devi usare il confronto tra oggetti Date per verificare se la partenza e` minore dell'arrivo e devi usare il metodo
    data.getDay() sulle date per determinare il giorno della settimana.

    Vedi ad esempio http://www.devguru.com/technologies/...ipt_index.html (cerca l'oggetto Date).

    Oppure fai una ricerca nel forum: l'argomento e` gia` stato trattato
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    se hai oggetti di tipo Date() la cosa è facile:

    con Date.getDay() controlli se è sabato (getDate() restituisce un intero da 0 a 6, con 0 = Domenica, 1 = Lunedì... 6 = Sabato);

    sempre se sono oggetti Date, data2 - data1 > 0 indica che la data2 viene dopo.

    Al limite, ti costruisci il Date() con

    d1 = new Date(anno-data1, mese-data1, giorno-data1);
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    sono alle prima armi js ho fatto diverse ricerche ma senza esito

    mi daresti una manina....

    ho iniziato cosi ma non ricevo alcun segnale di errore se inserisco delle date sbagliate

    codice:
    function confronto (data1,data2) {
    		var data1 = new Date(aaaa, mm-1, gg); 
    		var data2 = new Date(aaaa, mm-1, gg); 
    		if ( data1 < data2) {
    			alert ("INTERVALLO DI DATA NON VALIDO!");
    		}
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    a me questo va:

    codice:
    <html>
    <head>
    <script language="javascript">
    
    function controllo() {
      d1 = new Date(2005, 10, 10);
      d2 = new Date(2004, 10, 10);
      d3 = new Date(2006, 10, 10);
    
      alert("d1 è" + (d1 < d2 ? "precedente " : "successivo ") +"rispetto d2\n ed è " +(d1 < d3 ? "precedente " : "successivo ") + "rispetto d3");
    }
    
    </script>
    <body onLoad="controllo();">
    </body>
    </html>
    Trovi qui le guide a javascript

    http://devedge-temp.mozilla.org/cent.../index_en.html
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    perfetto solo che io devo passargli la mia data

    come faccio a sostituire d1 e d2 con data1 data2 che arrivano in questo formato
    7-9-2005 (data1 ad esempio)
    1-9-2005 (data2 adesempio)

    codice:
    function confronto (data1,data2) {
    
      d1 = new Date(2005, 10, 10);
      d2 = new Date(2004, 10, 10);
    
      alert("d1 è " + (d1 < d2 ? "precedente " : "successivo ") +"rispetto d2");
    }
    :master:

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    String.split

    codice:
    <html>
    <head>
    <script language="javascript">
    
    function controllo(uno, due) {
      temp1 = uno.split("-");
      temp2 = due.split("-");
    
      d1 = new Date(temp1[2], temp1[1]-1, temp1[0]);
      d2 = new Date(temp2[2], temp2[1]-1, temp2[0]);
    
      alert(uno +" è" + (d1 < d2 ? "precedente " : "successivo ") +" rispetto "+ due);
    }
    
    </script>
    <body onLoad="controllo('7-9-2005', '8-10-2006');">
    </body>
    </html>
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    2,929
    perfetto!!! il primo passoè fatto grazie a te!!




    solo che non riesco ad applicarlo alla mia pagina secondo te sbaglio a passargli ivalori?

    codice:
    function controllo(uno, due) {
      temp1 = uno.split("-");
      temp2 = due.split("-");
    
      d1 = new Date(temp1[2], temp1[1]-1, temp1[0]);
      d2 = new Date(temp2[2], temp2[1]-1, temp2[0]);
    
      alert(uno +" è" + (d1 < d2 ? "precedente " : "successivo ") +" rispetto "+ due);
    }
    poi la richiamo cosi

    codice:
    <input name="data2" type="text" id="data2" style="width:60px; height:19px; font-family:Tahoma; font-size:11px; background-color:#FFFFFF " onChange="controllo(document.formData.data1, document.formData.data2)" maxlength="10">

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Dipende come passi i valori.

    E comunque devono essere numerici quando li passi alla funzione Date(), specie il mese dove devi fare la sottrazione

    Vedi questa modifica:
    codice:
    function controllo(uno, due) {
      temp1 = uno.split(/[\/\-\.]/);
      temp2 = due.split(/[\/\-\.]/);
    
      d1 = new Date(temp1[2], parseInt(temp1[1],10)-1, temp1[0]);
      d2 = new Date(temp2[2], parseInt(temp2[1],10)-1, temp2[0]);
    
      alert("le date: "+d1.toLocaleString+" e "+d2.toLocaleString);
      alert(uno +" è" + (d1 < d2 ? "precedente " : "successivo ") +" rispetto "+ due);
    }
    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
    May 2002
    Messaggi
    2,929
    ok grazie mille ho risolto,

    adesso sono passata al secondo punto riesco a sapere che giorno della settimana e stato scelto ma non so come fare una condizione che avverta che e stato scelto un giorno sbagliato

    in pratica devo controllare prima che la data "due" non sia minore della data "uno" (e fin qui ci siamo) poi che la prima data corrisponda ad un sabato e che la seconda corrisponda ad un venerdì

    codice:
    function controllo1(uno, due) {
      temp1 = uno.split("-");
      temp2 = due.split("-");
    
      d1 = new Date(temp1[2], temp1[1]-1, temp1[0]);
      d2 = new Date(temp2[2], temp2[1]-1, temp2[0]);
      
      g1 = d1.getDay()
      g2 = d2.getDay() 
      
      giorni = new Array("domenica","lunedi'","martedi'","mercoledi'","giovedi'","venerdi'","sabato") 
    	risultato1 = giorni[g1] // deve essere un sabato
    	risultato2 = giorni[g2] // deve essere un venerdì
    
      if (d2 < d1) {
      alert ("LA DATA DI PARTENZA E' MINORE DI QUELLA DI ARRIVO");
      }
    }
    Grazie mille

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.