如何使用Javascript AngularJS从日期选择器中的当前日期开始

How can I start from current date in Date Picker using Javascript AngularJS

本文关键字:当前日期 开始 选择器 日期 何使用 Javascript AngularJS      更新时间:2023-09-26

在我的日期选择器月份是从当前月份开始到下一个12个月。日期显示从第一次约会到最后一次约会。但我想显示当前日期到当前月份的最后日期。过去的日期不应显示。我认为我们可以设置一个限制a,如I =dates.getDate(),从当前日期开始。不确定。请检查我的小提琴和代码。

datepicker = angular.module('datepicker', []);
datepicker.controller('dateTimePicker', ['$scope', function($scope){
	console.log('alive');
        
  var date = new Date();
  var months = [],
    monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    ];
  for (var i = 0; i <= 12; i++) {
    months.push(monthNames[date.getMonth()] + ' ' + date.getFullYear());
    date.setMonth(date.getMonth() + 1);
  }
  $scope.year =2015;
  $scope.changeMonth = function(steps) {
    if ($scope.monthIndex + steps >= 0 &&
      $scope.monthIndex + steps <= 12
    ) {
      $scope.dateValues = [];
      $scope.monthIndex = $scope.monthIndex + steps;
      $scope.monthName = $scope.months[$scope.monthIndex];
       var date = new Date();
        console.log(date.getMonth());
        var offset = date.getMonth()
       console.log($scope.monthIndex);
        var offsetDate = offset + $scope.monthIndex;
      $scope.nDays = new Date( $scope.year,  offsetDate+1, 0).getDate();
        console.log(offsetDate+1);
        console.log(new Date( $scope.year, offsetDate, 1));
      for (i = 1; i <= $scope.nDays; i++) {  
    	var d = new Date();
    	$scope.dateValues.push(new Date($scope.year,  offsetDate, i));
  	  }
      
    }else{console.log("missed")}
  };
  $scope.monthIndex = 0;
  $scope.months = months;
  $scope.monthName = months[0];
  $scope.changeMonth(0);
}]);

小提琴链接:- https://jsfiddle.net/enkode/89sbv65e/

用以下方法更改$scope.nDays循环,其中包括displayDate与当前日期的比较,显然您需要将d(当前日期)的时间设置为0,因为您的显示日期时间为0。

for (i = 1; i <= $scope.nDays; i++) {
    var d = new Date();
    d.setHours(0, 0, 0, 0);
    var displayDate = new Date($scope.year,  offsetDate, i);
    if(displayDate >= d)
        $scope.dateValues.push(displayDate);
}