blob: f39991d96f8dc1dcd0fd41004c4bcffbd5cdf74f [file] [log] [blame]
Simon Huntdf03d8d2014-12-12 11:37:07 -08001<!DOCTYPE html>
2<html>
3<head>
4 <title>Custom Filters in Action</title>
5 <script src="../../tp/angular.js"></script>
6</head>
7<body ng-app="filtersApp">
8
9 <div ng-controller="FilterCtrl as ctrl">
10 <div>
11 Start time (Timestamp): {{ctrl.startTime}}
12 </div>
13 <div>
14 Start time (Time): {{ctrl.startTime | date:'h:m a'}}
15 </div>
16 <div>
17 Start time (Our filter): {{ctrl.startTime | timeAgo}}
18 </div>
19 <div>
20 Start time (Our filter 2): {{ctrl.startTime | timeAgo:true}}
21 </div>
22 <div>
23 Some time ago (Computed): {{ctrl.someTimeAgo | date:'h:m a'}}
24 </div>
25 <div>
26 Some time ago (Our filter): {{ctrl.someTimeAgo | timeAgo}}
27 </div>
28 </div>
29
30 <script type="text/javascript">
31 angular.module('filtersApp', [])
32 .controller('FilterCtrl', [function () {
33 var self = this;
34 self.startTime = new Date().getTime();
35 self.someTimeAgo = self.startTime - (1000*3600*4);
36 }])
37 .filter('timeAgo', [function () {
38 var _m = 1000 * 60,
39 _h = _m * 60,
40 _d = _h * 24,
41 _mon = _d * 30;
42
43 return function (ts, ignoreSecs) {
44 var now = new Date().getTime(),
45 diff = now - ts;
46 if (diff < _m && !ignoreSecs) {
47 return 'seconds ago';
48 } else if (diff < _h) {
49 return 'minutes ago';
50 } else if (diff < _d) {
51 return 'hours ago';
52 } else if (diff < _mon) {
53 return 'days ago';
54 } else {
55 return 'months ago';
56 }
57 }
58 }]);
59 </script>
60</body>
61</html>