Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Calcolo dei giorni fra data di oggi e data inserita

    Ciao a tutti.

    In un form ho un campo chiamato:

    codice:
    <input type="text" id="DataT1" name="DataT1" size="20">
    Devo controllare che la differenza tra data inserita nel campo DataT1 e la data odierna sia sempre superiore o uguale a 14.

    Cioè se nel campo DataT1 inserisco valore:

    1) 29/04/2011 il form deve partire, perchè rispetto ad oggi 14/04/2011 al 29/04/2011 mancano 15 giorni;

    2) 18/04/2011 il form si deve bloccare perchè la differenza tra 14 e 18 è 4, quindi inferiore a 14.

    Sapete aiutarmi per favore?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Scrivo così:

    codice:
    var days = 0;
    var difference = 0;
    
    DataScadenza = document.Qform.DataT1.value;
    
    today = new Date();
    var day = today.getDate()
    var month = today.getMonth() + 1
    var year = today.getFullYear()
    if (day < 10){
    day = '0' + day
    }
    if (month < 10){
    month = '0' + month
    }
    today = day + '/' + month + '/' + year
    
    difference = DataScadenza - today;
    days = Math.round(difference/86400000); //(1000*60*60*24));
    
    alert(DataScadenza +'\n'+ today +'\n'+ days)
    Ma days è sempre NaN....

  3. #3
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    difference = DataScadenza - today;

    Stai tentando di fare la differenza fra due stringhe...

    Devi fare il contrario: trasformare la stringa letta dal form in data, non la data di oggi in stringa...

    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
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da br1
    difference = DataScadenza - today;

    Stai tentando di fare la differenza fra due stringhe...

    Devi fare il contrario: trasformare la stringa letta dal form in data, non la data di oggi in stringa...

    ciao
    Grazie, ma ricevo queste stringhe come date inserite:

    Sat May 4 00:00:00 UTC+0200 2013
    Thu Apr 14 17:27:16 UTC+0200 2011
    750
    codice:
    var days = 0;
    var difference = 0;
     
    DataScadenza = new Date(document.Qform.DataT1.value);
     
    var day = DataScadenza.getDate()
    var month = DataScadenza.getMonth() + 1
    var year = DataScadenza.getFullYear()
    if (day < 10){
    day = '0' + day
    }
    if (month < 10){
    month = '0' + month
    }
    DataScadenza = day + '/' + month + '/' + year
     
     
    today = new Date();
    difference = DataScadenza - today;
    days = Math.round(difference/86400000); //(1000*60*60*24));
     
    alert(DataScadenza +'\n'+ today +'\n'+ days)

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Risolto

    codice:
     var DataScadenza = document.Qform.DataT1.value.split("/"); 
     var newDate  = new Date(DataScadenza[2],DataScadenza[1]-1,DataScadenza[0]);
     var currDate = new Date();   
     
     difference = (newDate - currDate);
     days = Math.round(difference/86400000);
    
     if ( (difference) > (1000 * 60 * 60 * 360) || (difference) < (1000 * 60 * 60) )     
          {          
          alert(newDate + '\n' + currDate + '\n' + days);      
          return;          
          }

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.