js 根据时间,输出几分钟前,几小时前,几天前,几个月前,几年前。 console.log(getDateDiff("2020-12-16 12:12:12")); 输出结果:2小时前

发布时间 2023-07-12 18:07:58作者: sunny123456

js 根据时间,输出几分钟前,几小时前,几天前,几个月前,几年前。
原文链接:https://blog.csdn.net/qq_42740797/article/details/111277824

代码1:

  1. // 时间戳转多少分钟之前
  2. function getDateDiff(dateTimeStamp) {
  3. // 时间字符串转时间戳
  4. var timestamp = new Date(dateTimeStamp).getTime();
  5. var minute = 1000 * 60;
  6. var hour = minute * 60;
  7. var day = hour * 24;
  8. var halfamonth = day * 15;
  9. var month = day * 30;
  10. var year = day * 365;
  11. var now = new Date().getTime();
  12. var diffValue = now - timestamp;
  13. var result;
  14. if (diffValue < 0) {
  15. return;
  16. }
  17. var yearC = diffValue / year;
  18. var monthC = diffValue / month;
  19. var weekC = diffValue / (7 * day);
  20. var dayC = diffValue / day;
  21. var hourC = diffValue / hour;
  22. var minC = diffValue / minute;
  23. if (yearC >= 1) {
  24. result = "" + parseInt(yearC) + "年前";
  25. } else if (monthC >= 1) {
  26. result = "" + parseInt(monthC) + "月前";
  27. } else if (weekC >= 1) {
  28. result = "" + parseInt(weekC) + "周前";
  29. } else if (dayC >= 1) {
  30. result = "" + parseInt(dayC) + "天前";
  31. } else if (hourC >= 1) {
  32. result = "" + parseInt(hourC) + "小时前";
  33. } else if (minC >= 1) {
  34. result = "" + parseInt(minC) + "分钟前";
  35. } else
  36. result = "刚刚";
  37. return result;
  38. }
  39. console.log(getDateDiff("2020-12-16 12:12:12"));

测试时间:2020年12月16日14:30:21,输出结果:2小时前。

代码2:

  1. function getDateDiff(dateStr) {
  2. var publishTime = getDateTimeStamp(dateStr) / 1000,
  3. d_seconds,
  4. d_minutes,
  5. d_hours,
  6. d_days,
  7. timeNow = parseInt(new Date().getTime() / 1000),
  8. d,
  9. date = new Date(publishTime * 1000),
  10. Y = date.getFullYear(),
  11. M = date.getMonth() + 1,
  12. D = date.getDate(),
  13. H = date.getHours(),
  14. m = date.getMinutes(),
  15. s = date.getSeconds();
  16. //小于10的在前面补0
  17. if (M < 10) {
  18. M = '0' + M;
  19. }
  20. if (D < 10) {
  21. D = '0' + D;
  22. }
  23. if (H < 10) {
  24. H = '0' + H;
  25. }
  26. if (m < 10) {
  27. m = '0' + m;
  28. }
  29. if (s < 10) {
  30. s = '0' + s;
  31. }
  32. d = timeNow - publishTime;
  33. d_days = parseInt(d / 86400);
  34. d_hours = parseInt(d / 3600);
  35. d_minutes = parseInt(d / 60);
  36. d_seconds = parseInt(d);
  37. if (d_days > 0 && d_days < 3) {
  38. return d_days + '天前';
  39. } else if (d_days <= 0 && d_hours > 0) {
  40. return d_hours + '小时前';
  41. } else if (d_hours <= 0 && d_minutes > 0) {
  42. return d_minutes + '分钟前';
  43. } else if (d_seconds < 60) {
  44. if (d_seconds <= 0) {
  45. return '刚刚';
  46. } else {
  47. return d_seconds + '秒前';
  48. }
  49. } else if (d_days >= 3 && d_days < 30) {
  50. return M + '-' + D + ' ' + H + ':' + m;
  51. } else if (d_days >= 30) {
  52. return Y + '-' + M + '-' + D + ' ' + H + ':' + m;
  53. }
  54. }
  55. function getDateTimeStamp(dateStr) {
  56. // 如果时间格式为2020/07/09 21:43:19.000 需要去掉.000 不然ios和firefox会有问题
  57. return Date.parse(dateStr.replace(/-/gi, "/"));
  58. }  
  59. console.log(this.getDateDiff("2020-07-03 10:03:19.000"));