Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870

    Funzione controllo data [credits Br1]

    Buongiorno, ho trovato con la ricerca questa funzione (credits Br1) che controlla che la data fine di un periodo non sia uguale o minore alla data inizio dello stesso periodo:


    codice:
    function isDate(str) { // anno a 4 cifre !!!
    	spz = str.split("/"); 
    	dat = new Date(spz[2], spz[1]-1, spz[0]); 
    	if	( 
    		dat.getFullYear() == parseFloat(spz[2]) &&
    		dat.getMonth() == (parseFloat(spz[1])-1) &&
    		dat.getDate() == parseFloat(spz[0]) 
    		) {
    			return dat;
    	}
    	return false;
    }
    
    
    var data_inizio = isDate(document.getElementById('dal_giorno').value);
    var data_fine = isDate(document.getElementById('al_giorno').value);
    
    	if ((data_fine)<=(data_inizio)) {
    		alert("La data di fine non può essere uguale (o minore) alla data di inizio!");
    		Qform.al_giorno.focus();
    		return false;
    	}
    Il problema è che sino a quando ho inserito la data nel formato gg/mm/aaaa il controllo ha funzionato regolarmente, adesso che inserisco invece la data nel formato aaaa/mm/gg quando scrivo:

    data inizio = 2006/09/13
    data fine = 2006/09/14

    Mi restituisce la finestra di alert, perchè? dove sbaglio?

    Grazie-

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    :master: credo che quel codice si aspetti la data nel formato g/m/a

    se lo vuoi in a/m/g

    sostituisci
    dat = new Date(spz[2], spz[1]-1, spz[0]);

    con
    dat = new Date(spz[0], spz[1]-1, spz[2]);

    Pietro

  3. #3
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    ti ringrazio ma non cambia nulla....

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    function isDate(str) { // anno a 4 cifre !!!

    spz = str.split("/");
    //dat = new Date(spz[2], spz[1]-1, spz[0]);
    dat = new Date(spz[0], spz[1]-1, spz[2]);
    if (
    dat.getFullYear() == parseFloat(spz[0]) &&
    dat.getMonth() == (parseFloat(spz[1])-1) &&
    dat.getDate() == parseFloat(spz[2])
    ) {
    return dat;
    }
    return false;
    }
    Pietro

  5. #5
    Utente di HTML.it L'avatar di fraude
    Registrato dal
    Feb 2004
    Messaggi
    2,870
    Grazie!

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.