timeago.js自动将时间戳转换为更易读的时间轴

所属分类:输入-日期和时间

 31805  344  查看评论 (5)
分享到微信朋友圈
X
timeago.js自动将时间戳转换为更易读的时间轴 ie兼容10

这款时间控件,实用价值很高。代码比较干净,无外链。效果很完善。

使用方法

HTML

首先需要载入jQuery库和timeago.js

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.timeago.js"></script>

接着我们在页面中加入以下代码:

<abbr class="timeago" title="2012-11-28T11:17:00Z"></abbr>

我们给abbr元素设置class为timeago,设置title为标准的ISO 8601时间格式,你也可以使用html5标签time:

<time class="timeago" datetime="2012-12-10T02:20:50Z"></time>

jQuery

使用jQuery调用timeago(),运行页面即可看到效果。

$(function(){ 
    $(".timeago").timeago(); 
});

以下方法也可以调用timeago():

$(function(){ 
    jQuery.timeago(new Date());         //=> "约1分钟前" 
    jQuery.timeago("2012-12-09");        //=> "1天前" 
    jQuery.timeago(jQuery("abbr#some_id")); //=> "1年前"     // [title="2011-11-20"] 
});

timeago.js还支持处理将来的时间,如“3天后”,只需将以下参数设置为true。

jQuery.timeago.settings.allowFuture = true;

补充说明

timeago.js在标准的UTC时间模式下运行,对于我们处在东八区(+08:00),可以在加载时间时减去8小时,或者在时间格式中使用+08:00来显示准确的北京时间。

举个栗子,假设要处理的是北京时间2012-12-10 18:02:45,那么可以通过以下方式来获取准确的北京时间。

<!--先减去8小时--> 
<abbr class="timeago" title="2012-12-10T10:02:45Z"></abbr> 
<!--在时间后+08:00--> 
<abbr class="timeago" title="2012-12-10T18:02:45Z+08:00"></abbr>


相关插件-日期和时间

mobiscroll_手机上下滚动选择日期时间

可以上下滚动选择年月日时分秒
  日期和时间
 82660  546

jquery获取一年后的日期(原创)

利用jeDate插件 当选中一个时间之后 自动生成一个为期一年的时间
  日期和时间
 29330  201

jQuery定时器自动版

可以定时1~60分钟,定时结束播放音乐
  日期和时间
 28861  301

日程表插件(fullcalendar),自定义任务显示、切换视图

加载事件数据、能切换年月视图、控制任务的自定义显示数量和效果、单元格绑定事件和元素
  日期和时间
 41339  317

讨论这个项目(5)回答他人问题或分享插件使用方法奖励jQ币 评论用户自律公约

    angelfreedomv 0
    2018/11/28 14:56:06
    谢谢分享,很强大 回复
    白褚 0
    2017/8/4 10:45:14
    水木易安 3
    2016/10/21 14:10:44

    这种东西还需要jq什么的这么麻烦?

    function getDateDiff(dateTimeStamp) {
    
    	var minute = 1000 * 60;
    	var hour = minute * 60;
    	var day = hour * 24;
    	var halfamonth = day * 15;
    	var month = day * 30;
    
    	var now = new Date().getTime();
    	var diffValue = now - dateTimeStamp;
    
    	if (diffValue < 0) {
    		//非法操作
    		//alert("结束日期不能小于开始日期!");
    	}
    
    	var monthC = diffValue / month;
    	var weekC = diffValue / (7 * day);
    	var dayC = diffValue / day;
    	var dayR = diffValue / hour % 24;
    	var hourC = diffValue / hour;
    	var hourR = diffValue / minute % 60;
    	var minC = diffValue / minute;
    	var minR = diffValue / 1000 % 60;
    	if (monthC >= 1) {
    		result = getLocalTime(dateTimeStamp / 1000);
    	} else if (weekC >= 1) {
    		result = parseInt(weekC) + "个星期前";
    	} else if (dayC >= 1) {
    		result = parseInt(dayC) + "天" + parseInt(dayR) + "小时前";
    	} else if (hourC >= 1) {
    		result = parseInt(hourC) + "小时" + parseInt(hourR) + "分钟前";
    	} else if (minC >= 1) {
    		result = parseInt(minC) + "分钟" + parseInt(minR) + "秒前";
    	} else result = "刚刚发表";
    	return result;
    }
    
    function getLocalTime(nS) {
    	return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/, ' ');
    }
    回复
    k1 0
    2016/10/13 16:10:05
    汪汪汪哈喽程序猿 0
    2016/10/12 14:10:21
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
😃
  • 😀
  • 😉
  • 😥
  • 😵
  • 😫
  • 😘
  • 😡
  • 👍
  • 🌹
  • 👏
  • 🍺
  • 🍉
  • 🌙
  • 💖
  • 💔
取消回复