2016-08-01 18 views
1

Wie kann ich bestimmte Daten basierend auf dem aktuellen Datum deaktivieren, sagen wir, heute ist 8/1/16, ich möchte 4 Tage deaktivieren (4 ist ein Beispiel, es könnte jeder sein Nummer) nach dem aktuellen Datum, an dem die Wochenenden nicht gezählt werden,So deaktivieren Sie bestimmte Datumsangaben im eckigen Material datepicker

Beispiel wenn heute der 01.08.16 ist Ich möchte 8/2/16, 8/3/16, 8/4/16 und 8 deaktivieren/5/16, und die Daten, die verfügbar wären, wären diejenigen, die nach 8/8/16 sind.

Im Moment nur ich weiß, wie mit diesem Filter

$scope.disableSelectedDays = function() { 

       //I create a New moment since I always going to need the current date 
       var momentJS = new moment(); 

       if (momentJS <= moment().add(4, 'days')) { 
        return false; 
       } else { 
        //Just disable the weekends 
        var day = date.getDay(); 
        return day === 1 || day === 2 || day === 3 || day === 4 || day === 5; 
       } 
      } 

dies mein html

ist
<div class="form-group"> 
           <label>Delivery date:</label> 
           <md-datepicker ng-model="myDate" md-placeholder="Enter date" 
               md-date-filter="disableSelectedDays"> 
           </md-datepicker> 
          </div> 

das alle Wochentage im Kalender zu deaktivieren, sind die Versionen, die ich verwende Winkel maeria: v1.1.0-rc.5 Datumsauswahl: Datumsauswahl aus Winkelmaterial v1.1.0-RC4-master-88f2e3f

EDIT 1

Ich habe meinen Code mit Ihrer Antwort bearbeitet, aber jetzt sind alle Tage im Datepicker deaktiviert Ich kann nichts auswählen, was mache ich falsch?

Ich habe diesen Moment Bibliotheken

moment.js Version libaries: 2.14.1 Winkel Moment https://github.com/urish/angular-moment

Antwort

0

Für dieses Szenario können Sie versuchen, moment.js

So deaktivieren Sie eine beliebige Zahl mit von Tagen nach dem ausgewählten Datum, können Sie dies tun (Hoffentlich sollte funktionieren, nicht getestet haben, könnte es Tippfehler geben)

// Datum ist das Datum, das Sie überprüfen wollten

// NUMBEROFDAYS 4 nach Ihrem Beispiel

$scope.disableSelectedDays = function (date) { 
    if(date <= moment().add(4, 'days')) { 
     return false; 
    } 
    else { 
    //Just disable the weekends 
      var day = date.getDay(); 
      return day === 1 || day === 2 || day ===3 || day === 4 || day === 5; 
     } 
    } 
+0

Dank für die Antwort, aber was wäre der Wert ‚Tage‘ ?, auch das Datum ich, es wird immer der aktuelle Tag I don überprüfen möchten Warum sollte ich es mit dem Moment() Datum überprüfen müssen und wenn das aktuelle Datum kleiner ist als der Moment an dem ich 4 Tage addiere? und diese "Datum" Variable ist das gleiche, dass die "date.getDay()" Variable Dank im Voraus –

+0

Ich habe meine Frage bearbeitet @Natraj, jetzt sind alle meine Daten in der Datumsauswahl deaktiviert warum? –

+0

Auch scheint, dass Sie nicht den Code verwendet haben, den ich Ihnen gegeben habe, vergleichen Sie heute mit heute selbst und die Schleife geht weiter, das ist der Grund, warum alle Daten deaktiviert sind ... – Natraj

Verwandte Themen