2017-04-06 3 views
0

I Winkelmaterial bin mit Datetime https://github.com/logbon72/angular-material-datetimepickerWie Wochenenden in Winkelmaterial deaktivieren Datetime

Ich möchte Wochenenden und Mittwoch Daten in Winkelmaterial Datetime

<input time="false" date="true" mdc-datetime-picker type="text" id="date" placeholder="Date" ng-model="date" min-date="minDate" max-date="maxDate" disable-dates="dates"> 

I deaktivieren können ein bestimmtes Datum Code unten schauen deaktivieren

$scope.dates = [new Date('2017-04-14T00:00:00'), new Date('2017-04-20T00:00:00'), 
     new Date('2017-04-24T00:00:00'), new Date('2017-04-25T00:00:00'), new Date('2017-04-03T00:00:00'), 
     new Date('2017-04-30T00:00:00')]; 

Bitte helfen Sie mir. Jede Hilfe sollte geschätzt werden. Danke im Voraus.

Antwort

2

Besonderer Dank geht an Salih. Ich habe nach einem langen Training eine Antwort bekommen. Es kann anderen helfen. Hier ist mein Code.

Dieser Code wird deaktiviert Mittwoch Daten bis zu 1 Jahr

$scope.dates = []; 

function getDates(year, month, day) { 

      var date = new Date(year, month, day); 

      while (date.getDay() != 3) { // 3 refers to Wednesday and 0 refers to Sunday 
       date.setDate(date.getDate() + 1); 
      } 

      for (var i = 0; i < 52; ++i) { //52 refers to total weeks in a year 

       var m = date.getMonth() + 1; 
       var d = date.getDate(); 

       if(m === 12) { // if month is December 

        var year = date.getFullYear()+1; // increment to next year current year is 2017 we increment to 2018 

        var lastyear = year - 1;  
        var setdate = lastyear + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)+'T00:00:00'; 
        var finaldate = new Date(setdate); 
        $scope.dates.push(finaldate); // December dates pushing to array 

       } else { 

        var setdate = year + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d)+'T00:00:00'; 
        var finaldate = new Date(setdate); 
        $scope.dates.push(finaldate); //all dates pushing to array except December 

       } 

       date.setDate(date.getDate() + 7); 
      } 

} 

var todaydate = new Date(); 
var getdate = getDates(todaydate.getFullYear(), todaydate.getMonth(), todaydate.getDate()); // call function 
console.log($scope.dates); // here is your result 

Viel Glück. Prost!!

2

Sie sie direkt deaktivieren kippe müssen Sie irgendeine Art von Filter Dinge wie unter ihnen untauglich machen

angular.module('datepickerBasicUsage', ['ngMaterial']) 
 
.controller('AppCtrl', function ($scope) { 
 
    $scope.myDate = new Date(); 
 
    $scope.onlyWeekendsPredicate = function(date) { 
 
    var day = date.getDay(); 
 
    return day === 1 || day === 2 || day === 3 || day === 4 || day === 5; 
 
    
 
    }; 
 
});
<!doctype html> 
 
<html ng-app="datepickerBasicUsage"> 
 
    <head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-animate.min.js"></script> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-aria.min.js"></script> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.0.4/angular-material.js"></script> 
 
    <script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/t-114/assets-cache.js"></script> 
 
    
 
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/angular-material/1.0.4/angular-material.css"> 
 
    
 
    <script src="app.js"></script> 
 
    </head> 
 
    <body> 
 

 
    <div ng-controller="AppCtrl" style='padding: 40px;'> 
 
    
 
    
 
    
 
    <div layout-gt-xs="row"> 
 
    <div flex-gt-xs=""> 
 
     <h4>Only weekends disabled</h4> 
 
     <md-datepicker ng-model="myDate" md-placeholder="Enter date" md-date-filter="onlyWeekendsPredicate"></md-datepicker> 
 
    </div> 
 
    
 
    </div> 
 
    </div> 
 
    </body> 
 
</html>

1

Sie sollten eine Funktion schreiben, die alle Wochenenden und Mittwoch in einem Jahr zurückkehrt, so dass es $scope.dates

zugeordnet werden kann Hier ist eine hilfreiche Antwort findet es alle Sonntage in einem Jahr. Sie können es nach Ihren Bedürfnissen verändern

Stackoverflow Answer

+0

Vielen Dank @salih Senol diese Link hat mir geholfen. Ich ändere die Codes abhängig von meiner Anforderung. Ich werde meinen Code hier posten. – saravana

+0

Gern geschehen. Prost :) –

Verwandte Themen