今天给大家分享一个,我在项目中自定义的一个日期过滤器。具体过滤出来的效果可参看下图:

用法:

{{ time | timeFilter }}

filter:

App.filter('timeFilter', function() { // 日期格式化

    //获取相对日期
function GetRelativeDate(timestampstr) {
var timestamp = parseInt(timestampstr);
timestamp = isNaN(timestamp) ? 0 : timestamp;
var thenT = new Date(timestamp);
thenT.setHours(0);
thenT.setMinutes(0);
thenT.setSeconds(0);
var nowtime = new Date();
nowtime.setHours(0);
nowtime.setMinutes(0);
nowtime.setSeconds(0);
var delt = Math.round((nowtime.getTime() - thenT.getTime()) / 1000 / 86400);
var day_def = {
'-3': '大后天',
'-2': '后天',
'-1': '明天',
'0': '今天',
'1': '昨天',
'2': '前天',
'3': '上前天'
}[delt.toString()] || ((delt >= -30 && delt < 0) ? Math.abs(delt) + '天后' : (delt > 0 && delt <= 30) ? delt + '天前' : GetDateString(timestamp));
return day_def;
} function GetDateString(timestampstr, split) {
var timestamp = parseInt(timestampstr);
timestamp = isNaN(timestamp) ? 0 : timestamp;
var datetime = new Date(timestamp);
var month = datetime.getMonth() + 1;
var date = datetime.getDate();
if (split === undefined) split = '-';
return datetime.getFullYear() + split + (month > 9 ? month : "0" + month) + split + (date > 9 ? date : "0" + date);
} return function(time) {
var week = new Date(parseInt(time) * 1000).getDay();
var hours = new Date(parseInt(time) * 1000).getHours();
var minutes = new Date(parseInt(time) * 1000).getMinutes(); if(hours < 10 && minutes < 10) {
var t = '0' + hours + ':0' + minutes;
}else if(hours < 10 && minutes > 9) {
var t = '0' + hours + ':' + minutes;
}else if(hours > 9 && minutes < 10) {
var t = hours + ':0' + minutes;
}else {
var t = hours + ':' + minutes;
} switch(week) {
case 1:
return '周一('+GetRelativeDate(time * 1000)+' '+ t +')';
case 2:
return '周二('+GetRelativeDate(time * 1000)+' '+ t +')';
case 3:
return '周三('+GetRelativeDate(time * 1000)+' '+ t +')';
case 4:
return '周四('+GetRelativeDate(time * 1000)+' '+ t +')';
case 5:
return '周五('+GetRelativeDate(time * 1000)+' '+ t +')';
case 6:
return '周六('+GetRelativeDate(time * 1000)+' '+ t +')';
case 0:
return '周日('+GetRelativeDate(time * 1000)+' '+ t +')';
}
};
});

angularjs自定义日期过滤器,如:周日(前天 21:24)的更多相关文章

  1. angularJS自定义一个过滤器

    ng允许我们自定义指令 下面来我们自己来定义一个过滤指令:filter,返回一个函数的形式 filter(name,callback(){//name:过滤器的名字,callback:匿名函数 ret ...

  2. AngularJs自定义过滤器filter

    AngularJs自带有很多过滤器,现在Insus.NET演示一个自定义的过滤器,如实现一个数据的平方. 本演示是在ASP.NET MVC环境中进行. 创建一个app: 创建一个控制器: 接下来是重点 ...

  3. angularjs自定义过滤器

    实现一个按输入框中的数据筛选的功能,筛选可按电影的名称.年份.评分检索框: <input type="text" placeholder="可检索名字评分和年份&q ...

  4. Spring Cloud Alibaba学习笔记(21) - Spring Cloud Gateway 自定义全局过滤器

    在前文中,我们介绍了Spring Cloud Gateway内置了一系列的全局过滤器,本文介绍如何自定义全局过滤器. 自定义全局过滤需要实现GlobalFilter 接口,该接口和 GatewayFi ...

  5. 前端MVC学习总结(二)——AngularJS验证、过滤器、指令

    一.验证 angularJS中提供了许多的验证指令,可以轻松的实现验证,只需要在表单元素上添加相应的ng属性,常见的如下所示: <input Type="text" ng-m ...

  6. angularjs之filter过滤器

    现在公司用ionic,就是基于angularjs封装了一些api用于webapp,最近用的angularjs的filter确实省了很多代码,现在总结一下! ng比较鸡肋的过滤器,这里就一笔带过吧!鸡汤 ...

  7. 前端MVC学习总结——AngularJS验证、过滤器

    前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令( ...

  8. AngularJS中的过滤器

    欢迎大家指导与讨论 : ) 一.前言 AngularJS的过滤器能够将数据在被指令处理到显示在视图之前进行处理和转换.而且,过滤器不会修改作用域中的数据本身,即过滤器会保证数据的完整性.这样子能够允许 ...

  9. AngularJS的date 过滤器

    date 过滤器可以将日期格式化成需要的格式.AngularJS中内置了几种日期格式,如果没有指定使用任何格式,默认会采用 mediumDate 格式,下面的例子中展示了这个格式. ·下面是内置的支持 ...

随机推荐

  1. Python 函数传递list,传递dict 以及*args和**kargs

    函数之间传递list: def show(ll): for i in ll: print(i) show(['chen','hang','wang','yadan']) #============== ...

  2. Neutron网络-OPENSTACK讲得比较透和方便

    http://www.ustack.com/blog/neutron_intro/ Neutron是OpenStack核心项目之一,提供云计算环境下的虚拟网络功能.Neutron的功能日益强大,并在H ...

  3. keil优化论

    谈到优化,其实很多人都哭笑不得,因为在一个C51软件工程师的生涯中,总要被KEIL的优化耍那么一次到几次.我被耍过,想必看着文章的你也被耍过,如果你回答说不,那只能说你写的C51程序不多! 看看KEI ...

  4. ASP.NET MVC 实现与SQLSERVER的依赖缓存

    原文:ASP.NET MVC 实现与SQLSERVER的依赖缓存 本文主要是为了了解ASP.NET MVC 实现与SQLSERVER的依赖缓存的功能,针对自己对于这方面知识的学习的过程的一个记录.由于 ...

  5. 7.1.1.关闭WebSocket连接

    7.1.定义 7.1.1.关闭WebSocket连接 为_关闭WebSocket连接_,端点需关闭底层TCP连接.端点应该使用一个方法完全地关闭TCP连接,以及TLS会话,如果合适,丢弃任何可能已经接 ...

  6. Excel进行项目规划的好处

    1.表格的方式 2.多个工作表 3.插入图片 4.清晰的规划 5.大众都能看得懂 6.辅助一些数据表设计,其他的流程设计 7.对项目该做什么,进度等等有一个明确的认识 8.项目管理,吃透需求,对进度把 ...

  7. BZOJ 1002 [FJOI2007]轮状病毒

    1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 3106  Solved: 1724[Submit][Statu ...

  8. 判断一个js对象,是否具有某个属性

    一个对象,想必我们关注的最多的应该是它上面的属性有哪些吧.那么,怎么判断一个对象是否具有某个属性呢? /*下面是一个对比,看看在判断是否包括一个键上面,Object结构和Set结构的写法不同.*/ / ...

  9. vector的含义

    数学中,vector(向量)表示一个量,由大小和方向构成.比如坐标中的一个带箭头的线段 -- 它1厘米长,正弦值六分之一π(30度角). 计算机的c++.java中,vector表示一种一维的数组.比 ...

  10. Computer Vision and Machine Learning Competitions

    一.ImageNet Object Detection, Object Classification+Localization 二.COCO Image Captioning 三.LFW Face R ...