Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Problema con differenza date ....

    Ciao ragazzi .. prima di postare ho cercato nel forum... ho trovato diverse cose ma nessuna mi risolve questo problema che ho con la differenza di due date in javascript!


    Questo è il codice
    codice:
    //calcoliamo ora la differenza tra le 2 date inserite
    			var darrivo=new Date("2006", marrivo, garrivo);
    			var dpartenza=new Date("2006", mpartenza, gpartenza);
    			
    			var one_day=1000*60*60*24;
    			
       			var difference_ms = Math.abs(dpartenza.getTime()-darrivo.getTime())
    	
    			num_days=Math.floor(difference_ms/one_day);
    			alert(num_days);
    in marrivo garrivo mpartenza e gpartenza ci sono i valori dei mesi e i giorni presi da delle textbox.

    Il problema è: che se metto una data a cavallo tra febbraio e marzo mi sballa il conteggio dei giorni!! Per esempio se metto 26/02 e 1/03 mi calcola 6 giorni!!!! Ma in realtà ne sono 3 !!!!

    Aiuto please!
    Mike

  2. #2
    Ehm .. se vi può essere d'aiuto .. ho scoperto che non funziona mai quando si mettono date a cavallo tra 2 mesi... ogni volta da dati inaspettati!

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Hai considerato che in javascript i mesi vanno da 0 (gennaio) a 11 (dicembre) ?

    prova:

    var darrivo=new Date("2006", marrivo-1, garrivo);
    var dpartenza=new Date("2006", mpartenza-1, gpartenza);


    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

  4. #4
    doh ... non lo sapevo XD
    cmq nel frattempo avevo risolto cosi:

    codice:
    //calcoliamo ora la differenza tra le 2 date inserite
    var darrivo="2006"+"/"+marrivo+"/"+garrivo;
    var dpartenza="2006"+"/"+mpartenza+"/"+gpartenza;
    			
    adata = Date.parse(darrivo)
    pdata= Date.parse(dpartenza)
    
    msPerDay = 24 * 60 * 60 * 1000
    num_days = Math.round((pdata.valueOf()-adata.valueOf())/ msPerDay);
    grazie mike

  5. #5
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da mikemad
    doh ... non lo sapevo XD
    cmq nel frattempo avevo risolto cosi:

    codice:
    //calcoliamo ora la differenza tra le 2 date inserite
    var darrivo="2006"+"/"+marrivo+"/"+garrivo;
    var dpartenza="2006"+"/"+mpartenza+"/"+gpartenza;
    			
    adata = Date.parse(darrivo)
    pdata= Date.parse(dpartenza)
    
    msPerDay = 24 * 60 * 60 * 1000
    num_days = Math.round((pdata.valueOf()-adata.valueOf())/ msPerDay);
    grazie mike
    Va bene solo se mese e giorno sono stringhe a due cifre.

    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
    io lo sto usando mettendo numeri ad 1 cifra e funge!
    Boh

    Mike

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.