Errore funzione

Morph3us

Nuovo Utente
22 Feb 2013
3
0
0
Salve ragazzi,
Ho un problema per me un po' strano.
Vi spiego subito.

Ho una funzione js che mi calcola la differenza di giorni fra 2 date.

Codice:
<!-- Calcolare differenza in giorni tra due date -->
function controllo_data(stringa){
	var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
	if (!espressione.test(stringa))
	{
	    return false;
	}else{
		anno = parseInt(stringa.substr(6),10);
		mese = parseInt(stringa.substr(3, 2),10);
		giorno = parseInt(stringa.substr(0, 2),10);
		
		var data=new Date(anno, mese-1, giorno);
		if(data.getFullYear()==anno && data.getMonth()+1==mese && data.getDate()==giorno){
			return true;
		}else{
			return false;
		}
	}
}

function confronta_data(data1, data2){
	data1str = data1.substr(6)+data1.substr(3, 2)+data1.substr(0, 2);
	data2str = data2.substr(6)+data2.substr(3, 2)+data2.substr(0, 2);
	if (data2str-data1str<0) {
		return false;
	}else{
		return true;
	}
}

function giorni_differenza(data1,data2){
	
	if(!controllo_data(data1) || !controllo_data(data2)){
		alert('Inserire le date nel formato gg/mm/aaaa');
		return -1;
	}

	if(!confronta_data(data1,data2)){
		alert('La data di inizio deve essere precedente quella di fine');
		return -1;
	}

	anno1 = parseInt(data1.substr(6),10);
	mese1 = parseInt(data1.substr(3, 2),10);
	giorno1 = parseInt(data1.substr(0, 2),10);
     
	anno2 = parseInt(data2.substr(6),10);
	mese2 = parseInt(data2.substr(3, 2),10);
	giorno2 = parseInt(data2.substr(0, 2),10);

    var dataok1=new Date(anno1, mese1-1, giorno1);
	var dataok2=new Date(anno2, mese2-1, giorno2);
	
	differenza = dataok2-dataok1;    
	giorni_differenza = new String(differenza/86400000);
	
	document.form1.ggAnt.value=giorni_differenza
	
	/*alert(giorni_differenza+' giorni di differenza');
	return giorni_differenza;*/
}

la funzione la richiamo tramite l'evento onclick: <img src="images/refresh_small.png" style="cursor:pointer" onClick="giorni_differenza(<%=date()%>,document.form1.dataConf.value);">

La funzione stranamente funziona SOLO 1 volta!
Anche non cambiando il valore del campo dataConf, ho anche provato a richiamare la funzione con due date fisse
giorni_differenza('01/01/2013','20/01/2013');

Firebug mi segnala "TypeError: giorni_differenza is not a function" sempre e solo al secondo click!

Che caspita può essere?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, metti var davanti a tutte le variabili
HTML:
<script>
    <!-- Calcolare differenza in giorni tra due date -->
    function controllo_data(stringa){
        var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
        if (!espressione.test(stringa))
        {
            return false;
        }else{
            var anno = parseInt(stringa.substr(6),10);
            var mese = parseInt(stringa.substr(3, 2),10);
            var giorno = parseInt(stringa.substr(0, 2),10);
		
            var data=new Date(anno, mese-1, giorno);
            if(data.getFullYear()==anno && data.getMonth()+1==mese && data.getDate()==giorno){
                return true;
            }else{
                return false;
            }
        }
    }

    function confronta_data(data1, data2){
        var data1str = data1.substr(6)+data1.substr(3, 2)+data1.substr(0, 2);
        var data2str = data2.substr(6)+data2.substr(3, 2)+data2.substr(0, 2);
        if (data2str-data1str<0) {
            return false;
        }else{
            return true;
        }
    }

    function giorni_differenza(data1,data2){
                
        if(!controllo_data(data1) || !controllo_data(data2)){
            alert('Inserire le date nel formato gg/mm/aaaa');
            return -1;
        }

        if(!confronta_data(data1,data2)){
            alert('La data di inizio deve essere precedente quella di fine');
            return -1;
        }
                   
        var anno1 = parseInt(data1.substr(6),10);
        var mese1 = parseInt(data1.substr(3, 2),10);
        var giorno1 = parseInt(data1.substr(0, 2),10);
     
        var anno2 = parseInt(data2.substr(6),10);
        var mese2 = parseInt(data2.substr(3, 2),10);
        var giorno2 = parseInt(data2.substr(0, 2),10);

        var dataok1=new Date(anno1, mese1-1, giorno1);
        var dataok2=new Date(anno2, mese2-1, giorno2);
	
        var differenza = dataok2-dataok1;    
        var giorni_differenza = new String(differenza/86400000);
	
        // document.form1.ggAnt.value=giorni_differenza
        alert(giorni_differenza);
       
       
    }
            
</script>

<input type="button" value="clicca" onclick="giorni_differenza('01/01/2013','21/01/2013')"/>
 

Morph3us

Nuovo Utente
22 Feb 2013
3
0
0
:mavieni: FUNZIONAAAAAAAHHH alabar.gif

Grazie mille!!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
S [PHP] errore funzione sleep PHP 5
T [Javascript] funzione per attivare analytics... dov'è l'errore? Javascript 14
M [PHP] Errore nell' assegnazione della variabile $this->id su una funzione PHP 1
M errore lettura data nel mysql con funzione Where PHP 1
P problema: la funzione funziona (scusate ill gioco di parole) ma mi da errore time out PHP 8
D Errore su funzione DataTable jQuery 3
J Funzione js che da errore Javascript 3
A Funzione exec di php, errore 127 PHP 0
S Errore funzione elimina script PHP 4
A errore in una funzione...non riesco ad individuarlo! PHP 4
F funzione do_crypt - errore PHP 10
G Errore funzione per form PHP 2
B errore funzione PHP 1
T Errore nel link "Torna Indietro" [era:Funzione javascript] Javascript 0
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
P Errore nell'indirizzo degli elementi HTML e CSS 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M errore dopo passaggio Php 7.2 PHP 6
S -> Errore PHP 8

Discussioni simili