Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Range di date

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    17

    Range di date

    Ciao a tutti

    c'è qualcuno che sa consigliarmi una funzione
    che mi consenta di avere un intervallo di date
    impostando la data di inizio e la data di fine.

    grazie in anticipo

  2. #2
    di già fatto non c'è nulla, ma puoi definire tu un oggetto che implementi le fuzioni che ti servono.

    Per esempio puoi costruire un oggetto Period che implementa un costruttore:

    codice:
    var Period = function(startDate, endDate){
        if(!startDate || !endDate || !startDate.getTime || !endDate.getTime){
            var e = new Error();
            e.message = "È necessario passare come argomenti due oggetti Date";
            throw e;
        }
        
        if(startDate.getTime() > endDate.getTime()){
            var e = new Error();
            e.message = "L'oggetto startDate non può rappresentare una data posteriore a quella dell'endDate";
            throw e;
        }
        this._startDate = startDate;
        this._endDate = endDate;
    }
    
    Period.prototype = {
       getStartDate : function(){
           this._startDate;
       },
       getEndDate : function(){
           this._endDate;
       },
       setStartDate : function(newDate){
           if(!newDate || !newDate.getTime){
               var e = new Error();
               e.message = "È necessario passare come argomento un oggetto Date";
               throw e;
           }
           this._startDate = newDate;
       },
       setEndDate : function(newDate){
           if(!newDate || !newDate.getTime){
               var e = new Error();
               e.message = "È necessario passare come argomento un oggetto Date";
               throw e;
           }
           this._endDate = newDate;
       },
       isInPeriod : function(d){
          if(!d || !d.getTime){
               var e = new Error();
               e.message = "È necessario passare come argomento un oggetto Date";
               throw e;     
          }
          return this._startDate.getTime() <= d.getTime() && this._endDate.getTime() >= d.getTime();
       }
    }
    Questo è un banalissimo oggetto chiamato Period.
    Si istanzia con:
    codice:
    var  p = new Period(d1, d2);
    dove d1 e d2 DEVONO essere due oggetti Date, di cui startDate < endDate.

    si possono ottenere le date con i metodi:
    codice:
    p.getStartDate(); p.getEndDate();
    e settarle con:

    codice:
    p.setStartDate(newD1); p.setEndDate(newD2);
    Ovviamente prende in ingresso SOLO oggetti date

    ed infine puoi controllare se un oggetto Date è compreso in un intervallo con il metodo
    codice:
    p.isInPeriod(dToTest);
    che prende in ingresso SOLO un oggetto Date.

    Queste sono funzioni molto banali, ma se ne possono aggingere anche altre, dipende solo da te.
    I DON'T Double Click!

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    17
    sei un grande

    sto usando le YUI library per fare il calendario
    e siccome è la prima volta che uso javascript
    sapresti mica farmi l'esempio di prima con le YUI library?
    altrimenti grazie per prima, sei stato di grande aiuto

  4. #4
    guarda che funziona anche con YUI e con tutte le altre librerie dato che ho usato Javascript standard
    I DON'T Double Click!

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    17
    grazie di tutto

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.