angularjs自定义日期过滤器,如:周日(前天 21:24)
今天给大家分享一个,我在项目中自定义的一个日期过滤器。具体过滤出来的效果可参看下图:
用法:
{{ 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)的更多相关文章
- angularJS自定义一个过滤器
ng允许我们自定义指令 下面来我们自己来定义一个过滤指令:filter,返回一个函数的形式 filter(name,callback(){//name:过滤器的名字,callback:匿名函数 ret ...
- AngularJs自定义过滤器filter
AngularJs自带有很多过滤器,现在Insus.NET演示一个自定义的过滤器,如实现一个数据的平方. 本演示是在ASP.NET MVC环境中进行. 创建一个app: 创建一个控制器: 接下来是重点 ...
- angularjs自定义过滤器
实现一个按输入框中的数据筛选的功能,筛选可按电影的名称.年份.评分检索框: <input type="text" placeholder="可检索名字评分和年份&q ...
- Spring Cloud Alibaba学习笔记(21) - Spring Cloud Gateway 自定义全局过滤器
在前文中,我们介绍了Spring Cloud Gateway内置了一系列的全局过滤器,本文介绍如何自定义全局过滤器. 自定义全局过滤需要实现GlobalFilter 接口,该接口和 GatewayFi ...
- 前端MVC学习总结(二)——AngularJS验证、过滤器、指令
一.验证 angularJS中提供了许多的验证指令,可以轻松的实现验证,只需要在表单元素上添加相应的ng属性,常见的如下所示: <input Type="text" ng-m ...
- angularjs之filter过滤器
现在公司用ionic,就是基于angularjs封装了一些api用于webapp,最近用的angularjs的filter确实省了很多代码,现在总结一下! ng比较鸡肋的过滤器,这里就一笔带过吧!鸡汤 ...
- 前端MVC学习总结——AngularJS验证、过滤器
前端MVC学习总结--AngularJS验证.过滤器 目录 一.验证 二.过滤器 2.1.内置过滤器 2.1.1.在模板中使用过滤器 2.1.2.在脚本中调用过滤函数 2.2.自定义过滤器 三.指令( ...
- AngularJS中的过滤器
欢迎大家指导与讨论 : ) 一.前言 AngularJS的过滤器能够将数据在被指令处理到显示在视图之前进行处理和转换.而且,过滤器不会修改作用域中的数据本身,即过滤器会保证数据的完整性.这样子能够允许 ...
- AngularJS的date 过滤器
date 过滤器可以将日期格式化成需要的格式.AngularJS中内置了几种日期格式,如果没有指定使用任何格式,默认会采用 mediumDate 格式,下面的例子中展示了这个格式. ·下面是内置的支持 ...
随机推荐
- 实现一个基于tcc/tlink的简单的编译链接工具
一.基础研究 在这里我们需要提供一套新的c语言开发工具cc,它支持的c程序不是从main开始运行而是从CMain开始运行. 书上已经对该工具程序进行了需求分析:(1)要在屏幕中间显示彩色的字符串:(2 ...
- 感觉差不多了。CLOUDSTACK的NAT,端口转发和防火墙结合穿透
构架差不多OK啦. 测试也近尾声啦. 感觉它适合私有云,或是混合云,但结合了SDN的网络,真的很安全. 如果是纯公有云,也是更适合特定方案.或是要第二次开发,毕竟让ACCOUNT登陆到后台,结合GUE ...
- SIM卡读卡器的研究与设计
SIM卡(Subscriber Identity Module).即用户识别模块,是一张符合GSM规范的"智慧卡".SIM卡可以插入任何一部符合GSM规范的移动电话中," ...
- KEIL C51高级编程
第一节 绝对地址访问C51提供了三种访问绝对地址的方法: 1. 绝对宏:在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:CBYTE.XBYTE.PWORD.DBYTE.CWO ...
- C51 库函数(2)
3.2 STDIO.H:一般I/O函数 C51编译器包含字符I/O函数,它们通过处理器的串行接口操作,为支持其它I/O机制,只需修改getkey()和putchar()函数,其它所有I/O支持函数依赖 ...
- android手机游戏开发Cocos2d-x开发分享
我想现在应该没有人没有玩过手机游戏了吧,当然所有人都玩过,但不是所有人都知道怎么去开发手机游戏,因为许多人都感觉做开发是一件很困难的事儿,身边的朋友也对此感觉难度很大.但是,现在我可以告诉你,手机游戏 ...
- html5中使用标签支持视频播放
<!--定义视频--> <!-- <video src="E:/ext-4.2.1.883/learnHtml5/Wildlife.wmv" control ...
- 【HDOJ】2510 符号三角形
暴力打表. #include <cstdio> ]={,,,,,,,,,,,,,,,,,,,,,,,,}; int main() { while (scanf("%d" ...
- HDOJ 1014 Uniform Generator(公约数问题)
Problem Description Computer simulations often require random numbers. One way to generate pseudo-ra ...
- java中的进制转换方法
java中进行二进制,八进制,十六进制,十进制间进行相互转换 关键字: java 进制转换 十进制转成十六进制: Integer.toHexString(int i) 十进制转成八进制 Integer ...