Angular: 27205559

http://angularjs.org/

by Oli Gustafsson

HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<div ng-controller="MyCtrl">

  <button ng-click="filterArticles(1)">last 24h</button>
  <button ng-click="filterArticles(5)">last 5 days</button>
  <button ng-click="filterArticles(0)">all</button>
  <ul>
    <li ng-repeat="article in displayArticles">
      {{ article.title }}, {{ article.date }}
    </li>
  </ul>

</div>

JavaScript

var myApp = angular.module('myApp', []);

myApp.controller('MyCtrl', function($scope) {


  $scope.filterArticles = function(numberOfDays) {
    numberOfDays = numberOfDays || 0;

    if (numberOfDays < 1) {
      $scope.displayArticles = $scope.articleContent;
      return;
    }

    var startDate = new Date();
    startDate.setHours(0, 0, 0, 0);
    var endDate = new Date();
    endDate.setDate(endDate.getDate() + numberOfDays);
    $scope.displayArticles = [];

    angular.forEach($scope.articleContent, function(article) {
      var articleDate = new Date(article.date);

      if (articleDate >= startDate && articleDate <= endDate) {
        $scope.displayArticles.push(article);
      };


    });
  };

  $scope.articleContent = [{
    title: 'Lorem 1',
    type: 'Image',
    image: 'http://dummyimage.com/150x150/000/fff&text=Sample+Images',
    teaser: 'orem ipsum dolor sit amet, consectetur adipisicing elit. Eum soluta minima qui',
    catergory: 'sport',
    date: 'Mar 11, 2016'
  }, {
    title: 'Anthony 2',
    type: 'Video',
    image: 'http://dummyimage.com/150x150/000/fff&text=Sample+Images',
    teaser: 'orem ipsum dolor sit amet, consectetur adipisicing elit.  soluta minima qui',
    catergory: 'tech',
    date: 'Mar 12, 2016'
  }, {
    title: 'Munei 3',
    type: 'article',
    image: 'http://dummyimage.com/150x150/000/fff&text=Sample+Images',
    teaser: 'orem ipsum dolor sit amet, consectetur adipisicing elit. Eum soluta minima qui',
    catergory: 'business',
    date: 'Mar 14, 2016'
  }, {
    title: 'Lorem 4',
    type: 'Image',
    image: 'http://dummyimage.com/150x150/000/fff&text=Sample+Images',
    teaser: 'orem ipsum dolor sit amet, consectetur adipisicing elit. Eum soluta  qui',
    catergory: 'lifestyle',
    date: 'Mar 16, 2016'
  }, {
    title: 'Test 5',
    type: 'video',
    image: 'http://dummyimage.com/150x150/000/fff&text=Sample+Images',
    teaser: 'orem ipsum dolor sit amet, consectetur adipisicing elit. Eum soluta minima...