2015-11-12 17 views
0

У меня есть фильтр даты. Мне нужно отфильтровать список даты назад текущей даты и даты до текущей даты.Как фильтровать дату в угловом формате с текущей даты?

Я использовал $scope.date = new Date(); $scope.ago = new Date() < $scope.date; $scope.before = new Date() > $scope.date;

, но не работает. Это мой код:

скрипт JS:

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

    $scope.date = new Date(); 


    $http.post("getProject.php") 
    .success(function (response) {$scope.projects = response;}); 

var now = new Date().getTime(); 
    $scope.date = new Date(2015, 10, 10); 
    $scope.ago = now < $scope.date.getTime(); 
    $scope.before = now > $scope.date.getTime(); 


}) 

код PHP:

<?php 
    include_once 'dbcon.php'; 
?> 

<!DOCTYPE html> 

<html ng-app="myApp"> 

<head> 

<script src="js/angular.min.js" type="text/javascript"></script> 
    <script type="text/javascript" src="js/app.js"></script> 

</head> 

<body ng-controller="myCtrl"> 
    <p>Filtering input:</p> 

     <p><select ng-model="sdate"> 
    <option value="">Search by title</option> 
     <option value="{{ago}}">Current Deals</option> 
     <option value="{{before}}">Past Deals</option> 
    </select></p> 
    <table> 

<thead> 
     <tr> 
      <th>Title</th> 
      <th>Start Date</th> 
      <th>End Date</th> 
      <th>Promotion</th> 
     </tr> 
</thead> 

<tbody> 

<tr ng-repeat="project in projects | filter:sdate | orderBy:'title'"> 

<td>{{project.title}}</td> 
<td>{{project.startdate}}</td> 
<td>{{project.enddate}}</td> 
<td>{{project.promotion}}</td> 

</tr> 

</tbody> </table> 
</body> 

</html> 

Когда текущая дата отберет он покажет весь список дат, прежде чем текущие предложения и при некоторых прошлых сделках он покажет текущую дату. Я пробовал код AGE, но он не работает. Как я могу это решить? Заранее спасибо.

+0

Спасибо AGE для редактирования моего вопроса. –

ответ

0

Я не уверен, что правильно понял ваш вопрос. Но если вы пытаетесь найти, есть ли дата до сегодняшнего дня или после сегодняшнего дня, вы можете легко достичь этого, используя moment.js. Объект Date по умолчанию для Javascript не очень удобен для сравнения. http://momentjs.com/docs/#/query/is-before/ var now = moment(); var beforeThisMoment = false; var afterThisMoment = false; if(now.isBefore(someDate)) { afterThisMoment = true; } else { beforeThisMoment = true; }

1

Использование GetTime для сравнения даты, как:

function ControllerApp($scope){ 
 
    var now = new Date().getTime(); 
 
    $scope.date = new Date(2015, 10, 10); 
 
    $scope.ago = now < $scope.date.getTime(); 
 
    $scope.before = now > $scope.date.getTime(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app ng-controller="ControllerApp"> 
 
    Ago: {{ago}} 
 
    Before: {{before}} 
 
</div>

Смежные вопросы