前端 时间个性化 插件 jquery.timeago.js
关键词 :
时间格式化 刚刚 N分钟前 N小时前 N天前 N月前 N年前
MM-dd hh:mm 或者 yyyy-MM-dd
前端:
- <span class="time" title="2016-07-23 12:02:32"></span>
用法:
- $(".time").timeago();
插件: jquery.timeago.js
- !function (t) {
- function e(e) {
- var n = t.extend(o.settings, e)
- , s = t.proxy(r, this);
- s(),
- n.refreshMillis > 0 && setInterval(s, n.refreshMillis)
- }
- function r() {
- var e = n(this)
- , r = e.datetime;
- return isNaN(r) || t(this).text(o.inWords(r)),
- this
- }
- function n(e) {
- return e = t(e),
- e.data("timeago") || e.data("timeago", {
- datetime: o.datetime(e)
- }),
- e.data("timeago")
- }
- function s(t) {
- return (new Date).getTime() - t.getTime()
- }
- function i(t) {
- var e = new Date;
- return e.getMonth() > t.getMonth() || e.getDate() > t.getDate()
- }
- function a(t) {
- return (new Date).getFullYear() > t.getFullYear()
- }
- Date.prototype.format = function (t) {
- var e = {
- "M+": this.getMonth() + 1,
- "d+": this.getDate(),
- "h+": this.getHours(),
- "m+": this.getMinutes(),
- "s+": this.getSeconds(),
- "q+": Math.floor((this.getMonth() + 3) / 3),
- S: this.getMilliseconds()
- };
- /(y+)/.test(t) && (t = t.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)));
- for (var r in e)
- new RegExp("(" + r + ")").test(t) && (t = t.replace(RegExp.$1, 1 == RegExp.$1.length ? e[r] : ("00" + e[r]).substr(("" + e[r]).length)));
- return t
- }
- ;
- var o = {
- settings: {
- refreshMillis: 6e4,
- relative: !0,
- strings: {
- suffixAgo: "前",
- seconds: "刚刚",
- minute: "1分钟",
- minutes: "%d分钟",
- hour: "1小时",
- hours: "%d小时",
- days: "%d天",
- months: "%d月",
- years: "%d年",
- numbers: []
- },
- yearsAgoFormat: "yyyy-MM-dd",
- daysAgoFormat: "MM-dd hh:mm"
- },
- inWords: function (e) {
- function r(e, r) {
- var n = t.isFunction(e) ? e(r, u) : e
- , s = g.numbers && g.numbers[r] || r;
- return n.replace(/%d/i, s)
- }
- var n = o.settings.relative;
- if (!n && a(e))
- return e.format(this.settings.yearsAgoFormat);
- if (!n && i(e))
- return e.format(this.settings.daysAgoFormat);
- var u = s(e)
- , g = this.settings.strings
- , h = g.suffixAgo
- , d = Math.abs(u) / 1e3
- , l = d / 60
- , f = l / 60
- , m = f / 24
- , c = m / 30
- , M = m / 365;
- return words = 60 > d ? r(g.seconds, Math.floor(d)) : 60 > l ? r(g.minutes, Math.floor(l)) : 24 > f ? r(g.hours, Math.floor(f)) : 30 > m ? r(g.days, Math.floor(m)) : 365 > m ? r(g.months, Math.floor(c)) : r(g.years, Math.floor(M)),
- "刚刚" == words ? words : words + h
- },
- parse: function (e) {
- var r = t.trim(e);
- return r = r.replace(/\.\d+/, ""),
- r = r.replace(/-/, "/").replace(/-/, "/"),
- r = r.replace(/T/, " ").replace(/Z/, " UTC"),
- r = r.replace(/([\+\-]\d\d)\:?(\d\d)/, " $1$2"),
- new Date(r)
- },
- datetime: function (e) {
- var r = t(e).attr(o.isTime(e) ? "datetime" : "title");
- return o.parse(r)
- },
- isTime: function (e) {
- return "time" === t(e).get(0).tagName.toLowerCase()
- }
- };
- t.fn.timeago = function (t) {
- return this.each(function () {
- e.call(this, t)
- }),
- this
- }
- }(window.jQuery)
前端 时间个性化 插件 jquery.timeago.js的更多相关文章
- jQuery滚动条插件 – jquery.slimscroll.js
jquery.slimscroll.js插件是一个支持把内容放在一个盒子里面,固定一个高度,超出的则使用滚动.jquery.slimscroll.js不仅可以定义高度.宽度,还可以定义位置.滚动条大小 ...
- 动态生成二维码插件 jquery.qrcode.js
前段时间做项目,需要动态生成一个二维码,于是就在网上找了一下发现一个jquery插件jquery.qrcode.js,所以今天就简单说一下这个插件的使用: jquery.qrcode.js是依赖jqu ...
- jQuery响应式幻灯片插件jquery.glide.js(支持触摸&轻量级)
找到一款好的幻灯片插件不容易,找到一款功能全并且使用很简单的幻灯片更不容易,今天为大家分享一款全能的幻灯片插件glide.js,也是我现在在使用的一款插件. jquery.glide.js是响应和触摸 ...
- 会跳高的字体插件jquery.beattext.js
插件描述:字体特效,会弹跳的字体插件jquery.beattext.js,兼容性如下: 使用方法 导入如下3个js文件: <script type="text/javascript&q ...
- jQuery分页插件(jquery.page.js)的使用
效果描述: 不用分页即可显示的jQuery插件 jQuery分页插件——jQuery.page.js用法很简单,效果很棒 1.前端 首先html的head中引入相关css与js <lin ...
- jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)
该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实 ...
- jQuery插件 -- 表单验证插件jquery.validate.js, jquery.metadata.js
原文地址:http://blog.csdn.net/zzq58157383/article/details/7718352 最常使用JavaScript的场合就是表单的验证,而jQuery作为一个 ...
- 基于jQuery开发的手风琴插件 jquery.accordion.js
1.插件代码 少说多做,基于jQuery的手风琴插件jquery.accordion.js的代码: /* * 手风琴插件说明: * 1.treeTrunk对应树干 * 2.treeLeaf对应树叶 ...
- jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明
jQuery图片懒加载插件jquery.lazyload.js使用实例注意事项说明 jquery.lazyload.js是一个用JavaScript编写的jQuery插件.它可以延迟加载长页面中的图片 ...
随机推荐
- Python2 下 Unicode 的一个小bug
关于Python的编码问题已经是老生常谈了,此处主要是介绍一个罕见的问题,也算是Python2的一个bug了(Python3不会有此问题). 在有时候我们去爬取网页或者调用一些第三方库获取文本的时候, ...
- split函数的实现
split作为字符串分割函数非常有用,但在C++里面没有这个函数.自己实现一个分割函数: 1.遇到多个分隔符连在一起,则不做分割 2.()内的分隔符不起作用 3.如果只有(,没有)不影响分隔符 #in ...
- C++ 画星号图形——空心矩形(核心代码记录)
int mi=(int)a; int mj=(int)b; ;i<mi;i++) { ;j<mj;j++) { ||i==mi-) cout<<"*"; | ...
- CSS3过渡、变形和动画
1.CSS3过渡 所谓CSS3过渡,就是使用CSS3让元素从一种状态慢慢转换到另一种状态.如鼠标的悬停状态就是一种过渡.如下例子: #content a{ text-decoration: n ...
- 多边形裁剪的Sutherland-Hodgman算法
多边形裁剪是渲染管线中重要的一个子阶段,它将视截体外的多边形去除.一种简单的裁剪策略是一旦发现一个顶点在裁剪区域以外,就立刻丢弃该多边形.更加精细的做法则是,将原来的多边形拆为多个不跨越边界的多边形, ...
- Educational Codeforces Round 6 E dfs序+线段树
题意:给出一颗有根树的构造和一开始每个点的颜色 有两种操作 1 : 给定点的子树群体涂色 2 : 求给定点的子树中有多少种颜色 比较容易想到dfs序+线段树去做 dfs序是很久以前看的bilibili ...
- java基础总结——开篇
工作三年多了,一直没时间静下心来好好总结,2016年马上就要过去了.也算是给自己在新一年的一个任务吧!总结java基础,然后再总结javaweb.纯属个人学习总结,总结过程中如有模糊的地方,望各位看官 ...
- Swift利用协议优化NSNotificationCenter
NSNotificationCenter存在的问题 通知没有统一的命名格式 对于通知的命名没有强制的要求,一个项目里可能有多种不同的命名规则.比如: 1 2 3 4 5 6 class Barista ...
- Elasticsearch问题总结
1.ES大量做FULL GC,日志如下: [2016-12-15 14:53:21,496][WARN ][monitor.jvm ] [vsp4] [gc][old][94725][4389] du ...
- MVC 上传 下载
[上传]带进度条 view 注:添加easyui的js文件 <script type="text/javascript"> function fileSelected ...