Получение всех дат месяца, когда указана дата с использованием angularjs - PullRequest
0 голосов
/ 21 мая 2019

Я хочу получить все даты месяца, когда дата предоставляется пользователем.Я новичок в angularjs.Как мне этого добиться?

1 Ответ

0 голосов
/ 27 мая 2019

Шаги для достижения этой цели ...

  1. принимает дату как ввод от пользователя;
  2. рассчитать первую и последнюю даты этого месяца;
  3. запустить цикл, который получает все промежуточные даты и сохраняет их в массиве;
  4. выводит массив на экран

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {

  $scope.particularDate;
  $scope.relevantMonth;
  $scope.relevantYear;
  $scope.relevantFirstDate;
  $scope.relevantLastDate;


  $scope.calcDate = function() {
    if ($scope.selectedDate) {
      $scope.yearPart = $scope.selectedDate.toString().substring(11, 15);
      $scope.particularDate = new Date($scope.selectedDate.toString().substring(0, 10));
      $scope.particularDate.setYear($scope.yearPart);

      $scope.relevantMonth = $scope.particularDate.getMonth() + 1;
      $scope.relevantYear = $scope.particularDate.getFullYear();

      $scope.relevantLastDate = new Date($scope.relevantYear, $scope.relevantMonth, 0);
      $scope.relevantFirstDate = new Date($scope.relevantYear, $scope.relevantMonth - 1, 1);
      $scope.fillAllDays();
    }
  }

  $scope.fillAllDays = function() {
    $scope.monthArray = [];

    var t = $scope.relevantFirstDate;
    $scope.monthArray.push(t.toLocaleDateString());

    for (var i = $scope.relevantFirstDate.getDate(); i < $scope.relevantLastDate.getDate(); i++) {
      t.setDate(t.getDate() + 1);
      $scope.monthArray.push(t.toLocaleDateString());
    }
  }

});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<div ng-app="myApp" ng-controller="myCtrl">
  Date: <input type='date' ng-model='selectedDate' ng-change='calcDate()' /> <br>
  <hr/>
  <p ng-repeat='x in monthArray'>{{x}}</p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...