ch09-01-time-ago.js 753 Bytes
// ch09-01-time-ago.js

angular.module('filterApp', [])
    .filter('timeAgo', [function () {
        var _m = 1000 * 60,
            _h = _m * 60,
            _d = _h * 24,
            _mon = _d * 30;

        return function (ts, ignoreSecs) {
            var showSecs = !ignoreSecs,
                now = new Date().getTime(),
                diff = now - ts;

            if (diff < _m && showSecs) {
                return 'seconds ago';
            } else if (diff < _h) {
                return 'minutes ago';
            } else if (diff < _d) {
                return 'hours ago';
            } else if (diff < _mon) {
                return 'days ago';
            } else {
                return 'months ago';
            }
        }
    }]);