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

Discussione: Formato data

  1. #1

    Formato data

    Ciao,

    avrei bisogno di una funzione che mi controlli l'inserimento corretto di una data (tra l'altro mi consigliate un formato così

    5.10.2005 oppure
    5/10/2005
    ?)


    so che è una domanda straricorrente... ma essendo disabilitato il forum...io ci provo

    Grazie

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998

    Re: Formato data

    so che è una domanda straricorrente... ma essendo disabilitato il forum...
    Pero' la discussione in evidenza con una raccolta di script/discussioni utili funziona ancora...

    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
    mmm si ok... però lì ho trovato solo questa voce...

    form e controlli
    - controllo validità data

    che non rimanda a nessun link... altro non ho trovato

    e la maggior parte degli altri link che ci sono mi da questo msg...

    Messaggio dal forum
    Hai specificato un thread errato. Se sei arrivato a questa pagina da un link corretto, segnala la cosa al webmaster

    un altro esempio...

    Controllo esistenza data
    by Willybit

    http://forum.html.it/forum/showthre...?threadid=80584

  4. #4
    up...

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Scusa, non mi ero accertato della presenza di un link valido nella discussione in evidenza

    http://forum.html.it/forum/showthrea...hreadid=816493

    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

  6. #6
    Perfetto ti ringrazio



  7. #7
    Ehm... sono ancora io che stresso...

    la funzione che proponi non riesco a capirla bene....

    io ho trovato questa...

    codice:
    function controlla_data() {
    
    var Data1 = document.inviadati.Data1.value;
    var Data2 = document.inviadati.Data2.value;
    
    
    if (document.inviadati.Data1.value.substring(2,3) != "/" ||
       document.inviadati.Data1.value.substring(5,6) != "/" ||
       isNaN(document.inviadati.Data1.value.substring(0,2)) ||
       isNaN(document.inviadati.Data1.value.substring(3,5)) ||
       isNaN(document.inviadati.Data1.value.substring(6,10))) {
          alert("Inserire Data1 in formato gg/mm/aaaa");
          document.inviadati.Data1.value = "";
          document.inviadati.Data1.focus();
          return false;
    }
    
    else if (document.inviadati.Data1.value.substring(0,2) > 31) {
       alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
       document.inviadati.Data1.select();
       return false;
    }
    
    else if (document.inviadati.Data1.value.substring(3,5) > 12) {
       alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
       document.inviadati.Data1.value = "";
       document.inviadati.Data1.focus();
       return false;
    }
    
    else if (document.inviadati.Data1.value.substring(6,10) < 1850) {
       alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
       document.inviadati.Data1.value = "";
       document.inviadati.Data1.focus();
       return false;
    }
    
    if (document.inviadati.Data2.value.substring(2,3) != "/" ||
       document.inviadati.Data2.value.substring(5,6) != "/" ||
       isNaN(document.inviadati.Data2.value.substring(0,2)) ||
       isNaN(document.inviadati.Data2.value.substring(3,5)) ||
       isNaN(document.inviadati.Data2.value.substring(6,10))) {
          alert("Inserire Data2 in formato gg/mm/aaaa");
          document.inviadati.Data2.value = "";
          document.inviadati.Data2.focus();
          return false;
    }
    
    else if (document.inviadati.Data2.value.substring(0,2) > 31) {
       alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
       document.inviadati.Data2.select();
       return false;
    }
    
    else if (document.inviadati.Data2.value.substring(3,5) > 12) {
       alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
       document.inviadati.Data2.value = "";
       document.inviadati.Data2.focus();
       return false;
    }
    
    else if (document.inviadati.Data2.value.substring(6,10) < 1850) {
       alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
       document.inviadati.Data2.value = "";
       document.inviadati.Data2.focus();
       return false;
    }
    
    return true;
    
    }
    che funziona mica male salvo un paio di eccezioni che vorrei impostare... ovvero

    se inserisco una data con i giorni postati a 00... me la accetta, ad esempio:

    00/10/2005

    oppure il controllo per l'anno bisestile... 29 febbraio 2004... 29 febbraio 2008, ecc...

    ehm... come si fa?

    Grazie

  8. #8
    Ecco... per il problema dei giorni/mesi settati a '00' era effettivamente semplice... mentre per l'anno bisestile :master:

    qualche suggerimento?

    Grazie

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Perdona se insisto a voler usare il mio codice... posto un esempio con lo script corretto

    codice:
    <script>
    function isDate(str) {
    	str = str .replace(/[\-\.\s]/g,"/"); 
    	spz = str.split("/"); 
    	dat = new Date(spz[2], spz[1]-1, spz[0]); 
    	gg = dat.getDate();
    	mm = dat.getMonth() +1;
    	aa = dat.getFullYear();
    	if (aa==parseFloat(spz[2]) && mm==parseFloat(spz[1]) && gg==parseFloat(spz[0])) 	
    		return dat;
    	return false;
    } 
    </script>
    </HEAD>
    
    <BODY>
    <form onsubmit="if (!isDate(this.campo1.value)){alert('Errore nella data 1');return false}">
    <input type=text name=campo1>
    <input type=text name=campo2 onblur="if (!isDate(this.value))alert('Errore nella data 2');">
    <input type=submit>
    </form>
    </BODY>
    Il primo campom viene controllato all'invio del form, il secondo solo quando perde il focus.

    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

  10. #10
    ehehe senza dubbio è performante

    sto weekend lo testo

    grazie nuovamente!


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.