/*
** 时间戳显示为多少分钟前,多少天前的处理
** eg.
** console.log(dateDiff(1411111111111)); // 2014年09月19日
** console.log(dateDiff(1481111111111)); // 9月前
** console.log(dateDiff(1499911111111)); // 2月前
** console.log(dateDiff(1503211111111)); // 3周前
** console.log(dateDiff(1505283100802)); // 1分钟前
*/
var dateDiff = function (timestamp) {
// 补全为13位
var arrTimestamp = (timestamp + '').split('');
for (var start = 0; start < 13; start++) {
if (!arrTimestamp[start]) {
arrTimestamp[start] = '0';
}
}
timestamp = arrTimestamp.join('') * 1; 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 - timestamp; // 如果本地时间反而小于变量时间
if (diffValue < 0) {
return '不久前';
} // 计算差异时间的量级
var monthC = diffValue / month;
var weekC = diffValue / (7 * day);
var dayC = diffValue / day;
var hourC = diffValue / hour;
var minC = diffValue / minute; // 数值补0方法
var zero = function (value) {
if (value < 10) {
return '0' + value;
}
return value;
}; // 使用
if (monthC > 12) {
// 超过1年,直接显示年月日
return (function () {
var date = new Date(timestamp);
return date.getFullYear() + '年' + zero(date.getMonth() + 1) + '月' + zero(date.getDate()) + '日';
})();
} else if (monthC >= 1) {
return parseInt(monthC) + "月前";
} else if (weekC >= 1) {
return parseInt(weekC) + "周前";
} else if (dayC >= 1) {
return parseInt(dayC) + "天前";
} else if (hourC >= 1) {
return parseInt(hourC) + "小时前";
} else if (minC >= 1) {
return parseInt(minC) + "分钟前";
}
return '刚刚';
};

  

最新文章

  1. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 2
  2. 学习Maven之Maven Clean Plugin
  3. 三维等值面提取算法(Dual Contouring)
  4. dom2和dom3
  5. 一个简单的jsp+servlet实例,实现简单的登录
  6. 使用 GCC 调试程序
  7. [充电]C++ string字符串替换
  8. 让background-color 无效
  9. linux 服务器登录显示lastlogin
  10. [推荐]Hadoop+HBase+Zookeeper集群的配置
  11. Linux驱动修炼之道-RTC子系统框架与源码分析【转】
  12. Codeforces Round #341 (Div. 2) ABCDE
  13. c++11 auto_ptr介绍
  14. 开源数据库连接池之Tomcat内置连接池
  15. HDU 2063:过山车(偶匹配,匈牙利算法)
  16. 区间DP 入门
  17. C#调用C++的dll EntryPointNotFoundException
  18. pom.xml文件模板、application文件模板、configuration逆向生成文件、
  19. LeetCode算法题-Intersection of Two Linked Lists(Java实现)
  20. RabbitMQ图解

热门文章

  1. redis info 参数说明
  2. 【141】Adobe Acrobat技巧
  3. CodeForces 723D Lakes in Berland (dfs搜索)
  4. bzoj 3159: 决战【LCT】
  5. Luogu P1273 有限电视网【树形Dp/树形背包】
  6. 在代码里更新autolayout布局
  7. IE6,7bug大搜集
  8. [Usaco2005]Part Acquisition
  9. bryce1010的图像处理课程设计
  10. 题解报告:hdu 1220 Cube