前端 时间个性化 插件 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插件.它可以延迟加载长页面中的图片 ...
随机推荐
- C#读写配置文件
.net有两种程序,一个是web程序,另外一种是app客户端程序,这两种程序的配置文件读写模式不同,web程序是直接读写马上生效.app客户端程序比如刷新加载一次. System.Configurat ...
- 【Alpha】Daily Scrum Meeting第三次
本次随笔调换了展示顺序,把重要的内容放前面. 一.本次Daily Scrum Meeting主要内容 说明要完成alpha版本还需要哪些功能 对这些功能进行分析和实现方式的讨论 强调编码规范和变量命名 ...
- Python之路第一课Day2--随堂笔记
入门知识拾遗 一.bytes类型 bytes转二进制然后转回来 msg="张杨" print(msg) print(msg.encode("utf-8")) p ...
- javascript 基础篇
JavaScript是一门编程语言,浏览器内置了JavaScript语言的解释器,所以在浏览器上按照JavaScript语言的规则编写相应代码之,浏览器可以解释并做出相应的处理. 一.如何编写 1. ...
- Java并发编程底层实现原理 - volatile
Java语言规范第三版中对volatile的定义如下: Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致性的更新,线程应该确保通过排他锁 单独获得这个变量. volatile有时候 ...
- mysql数据库迁移
由于yum安装mysql的时候,数据库的data目录默认是在/var/lib下,出于数据安全性的考虑需要把它挪到/data分区.步骤如下: 一.关闭apache和mysql. 复制代码 代码如下: s ...
- mockito使用心得
前提:pom引用<dependency> <groupId>junit</groupId> <artifactId>junit</artifact ...
- asp.net identity 2.2.0 在WebForm下的角色启用和基本使用(四)
有网友问及权限的问题,其实我觉得没什么改进. 主目录下的web.config基本不用改.要说要改的也就只有数据库连接了. <authentication mode="None" ...
- Ubuntu jdk安装
1. 创建目录 sudo mkdir /usr/lib/jvm 2. 解压 sudo tar -zxvf jdk-7u60-linux-x64.gz -C /usr/lib/jvm 3. 修改环境变量 ...
- C#组合查询小Demo
namespace WindowsFormsApplication1 { public partial class Form1 : Form { string Sql = "select * ...