Visualizzazione dei risultati da 1 a 6 su 6

Discussione: controllo max su date

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    controllo max su date

    Non è che abbiate una funzione del tipo max(d1,d2), dove d1 e d2 sono due stringhe data

    cioè una funzione che restituisce vero o falso a seconda che d2 sia > di d1, dove d1 e d2 sono due stringhe data, tipo "15/3/05" :master:

    Pietro

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    se vuoi sapere se 15/10/05 è maggiore di 08/04/04 hai due soluzioni

    1) estrai gg mm e aa e metti tutto in and logico
    if (15 >= 8) && (10 >= 4)...

    2) inserisci l'anno completo (15/10/05 -> 15/10/2005)
    rovesci la stringa 15/10/2005 -> 20051015
    e la confronti

    if (20051015 >= 20040408) ...

    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ahiii beccato in castagna ...

    Il metodo 1 non funziona sempre (vedi 9.1.05 rispetto a 3.2.05).

    Il metodo 2 invece e` corretto.

    Esiste un secondo metodo, che fa uso degli oggetti Date del JS.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    Originariamente inviato da Mich_
    Ahiii beccato in castagna ...

    Il metodo 1 non funziona sempre (vedi 9.1.05 rispetto a 3.2.05).
    Colpevole Vs onore..

    è giusto, però puoi farlo annidando tre if anzichè metterli in and
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Vi ringrazio
    Il problema nasce dal fatto che ho un campo data. La condizione di validità, però è che:
    1) esista
    2) sia una data valida
    3) sia una data maggiore di una certa data di riferimento

    Dato che ci sono varii modi, ho provato a convertire le due date stringa, nel tipo Date, dopo di che il confronto si riduce al confronto tra due numeri.
    Pietro

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    forse può servire a qualcuno:

    codice:
    //---------------------------------------------------------------------------
    //Confronta le due stringhe data d1 e d2 e restituisce:
    //null se d1 o d2 non sono date valide
    //-1 se d1 < d2
    // 0 se d1 = d2
    // 1 se d1 > d2
    //---------------------------------------------------------------------------
    function dateComp(d1, d2)
    {
    	var isdate1 = isdate(d1);
    	var isdate2 = isdate(d2);
    
    	if(!isdate1.isdate || !isdate2.isdate) return null;
    	
    	var d1 = new Date(isdate1.year, isdate1.month-1, isdate1.day);
    	var d2 = new Date(isdate2.year, isdate2.month-1, isdate2.day);
    
    	if(d1.getTime() == d2.getTime()) 
    		return 0;
    	else if(d1.getTime() < d2.getTime()) 
    		return -1;
    	else if(d1.getTime() > d2.getTime()) return 1;	
    
    }
    Pietro

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.