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

用法:

{{ 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. SpringMVC入门2-注解开发

    Spring MVC 注解开发 <context:component-scan base-package="com.controls" /> Springmvc的扫描器 ...

  2. UOJ 217 奇怪的线段树

    http://uoj.ac/problem/217 题意就不X了,思路在这: 居然一开始把sap里面的mn设置为inf了,我是傻逼.. #include<cstdio> #include& ...

  3. 发布WebService到IIS和调用WebService

    一:在项目上右键单击,选择发布,如图 二:可以单击重命名,自定义网站的名字,发布方式为:文件系统,目标路径为要发布的文件的位置,它需要放到IIS的目录下面的 三:打开IIS管理器,右键单击网站,添加网 ...

  4. Hyper-V连接虚拟机异常,“无法进行连接,因为可能无法将凭据发送到远程计算机”

    前两天把公司的TFS从2010升级到TFS2012(昨天又升级到TFS2013).今天使用服务器Hyper-V连接虚拟机时居然报错了. 翻看各种日志,虽然错误大一对一对地,但找不到任何有用的信息.无奈 ...

  5. LoadRunner基础入门教程

    原文地址:http://jingyan.baidu.com/article/215817f7dedfb01eda1423df.html 从LoadRunner英语字面上进行理解就是负载跑步者,为什么这 ...

  6. mount 远程挂载Nfs

    服务器:192.168.20.204 客户端:192.168.20.203 1. 在服务器配置/etc/export 添加可以共享的文件夹和允许的客户端地址 /home/dir 192.168.20. ...

  7. K - Rochambeau - poj2912(类似食物链)

    一群小孩玩一个简单石头布布游戏,这些小孩会分成三组(组内可能没有人)+一个自由人(比翻译成裁判合理多了),同一组的小孩只会出同一种手势(不会变的),不过裁判可以出任意的手势,这些小孩能就会相互猜拳玩, ...

  8. Java中直接输出一个类的对象

    例如 package com.atguigu.java.fanshe; public class Person { String name; private int age; public Strin ...

  9. [置顶] Hibernate运行机理

    Hibernate 的缓存体系 一级缓存: Session 有一个内置的缓存,其中存放了被当前工作单元加载的对象. 每个Session 都有自己独立的缓存,且只能被当前工作单元访问. 二级缓存: Se ...

  10. 苹果iOS操作系统整体架构层次讲解

     iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch ...