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

    Controllo differenza tra 2 date

    Ciao a tutti.
    Avrei bisogno del VS aiuto per quanto riguarda il controllo tra 2 date.
    Io ho Data1 e data2 e mi devo ACCERTARE che data1 sia maggiore di data2.

    ES:
    Data1='19/01/1981'
    Data2='20/02/1980'

    Grazie a tutti spider

    PS: ho fatto sto script ma se l'anno è di 4 caratteri(1980 es) non mi fa bene il controllo se invece la differenza è tra campi di 2 caratteri (ES 81,80) non mi da problemi come mai??

    prima='19/01/1981'
    seconda='20/12/1980'

    function confronta_date(prima,seconda) {

    aa_prima=prima.substring(6, 10)
    aa_seconda=seconda.substring(6, 10)

    mm_prima=prima.substring(3, 5)
    mm_seconda=seconda.substring(3, 5)

    gg_prima=prima.substring(0, 2)
    gg_seconda=seconda.substring(0, 2)

    if (aa_prima<aa_seconda){
    alert('Differenza tra date errate')
    return false
    }

    if (mm_prima<mm_seconda){
    alert('Differenza tra date errate')
    return false
    }

    if(gg_prima<mm_seconda){
    alert('Differenza tra date errate')
    return false
    }

    }

  2. #2
    Nussuno riesce ad aiutarmi???

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se e` solo verificare che sia maggiore, puoi usare il confronto alfabetico, altrimenti per trovare la differenza devi usare le funzioni Date().
    codice:
    function tras_data(in) {
      var parti = in.split("/");
      if(parseInt(parti[2],10)< 100) {
        if(parseInt(parti[2],10) < 30) parti[2] = "20"+parti[2];
        else parti[2] = "19"+parti[2];
      }
      return(parti[2] + "," + parti[1] + "," + parti[0]);
    }
    
    
    function confronta_date(pri,sec) { // confronto alfabetico
      if(tras_data(pri) < tras_data(sec)) {
        alert('Differenza tra date errate');
        return false;
      } else {
        return true;
      }
    }
    
    
    function confronta_date(pri,sec) { // confronto completo
      var prid = new Date(tras_data(pri));
      var secd = new Date(tras_data(sec));
      if (prid < secd) {
        alert('Differenza tra date errate');
        return false;
      }
      var diff = (prid - secd) / (24 * 3600 * 1000);
      alert ("giorni di differenza: "+diff);
    
      return true;
    }
    
    
    var Data1='19/01/1981'
    var Data2='20/02/1980'
    confronta_date (Data1, Data2);
    Potrebbero esserci dei problemi con i mesi, nel caso di confronto completo. Se ti serve, ti posto la patch (che e` un po' complessa).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.