2025年2月24日 星期一 甲辰(龙)年 腊月廿四 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > JavaScript

时间戳显示为多少分钟前,多少天前的JS处理

时间:03-28来源:作者:点击数:44

方法名为dateDiff,支持一个参数timestamp,必须参数,本方法会自动补全为和JS侧支持的13位数值(因为后端返回时间戳可能只精确到秒)。

  • /*
  • ** 时间戳显示为多少分钟前,多少天前的处理
  • ** 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 '刚刚';
  • };

 

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门