time.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import tool from "@/utils/tool";
  2. var Time = {
  3. //获取当前时间戳
  4. getUnix: function () {
  5. var date = new Date();
  6. return date.getTime();
  7. },
  8. //获取今天0点0分0秒的时间戳
  9. getTodayUnix: function () {
  10. var date = new Date();
  11. date.setHours(0);
  12. date.setMinutes(0);
  13. date.setSeconds(0);
  14. date.setMilliseconds(0);
  15. return date.getTime();
  16. },
  17. //获取今年1月1日0点0秒的时间戳
  18. getYearUnix: function () {
  19. var date = new Date();
  20. date.setMonth(0);
  21. date.setDate(1);
  22. date.setHours(0);
  23. date.setMinutes(0);
  24. date.setSeconds(0);
  25. date.setMilliseconds(0);
  26. return date.getTime();
  27. },
  28. //获取标准年月日
  29. getLastDate: function (time) {
  30. var date = new Date(time);
  31. var month =
  32. date.getMonth() + 1 < 10
  33. ? "0" + (date.getMonth() + 1)
  34. : date.getMonth() + 1;
  35. var day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
  36. return date.getFullYear() + "-" + month + "-" + day;
  37. },
  38. //转换时间
  39. getFormateTime: function (timestamp) {
  40. timestamp = new Date(timestamp);
  41. var now = this.getUnix();
  42. var today = this.getTodayUnix();
  43. //var year = this.getYearUnix();
  44. var timer = (now - timestamp) / 1000;
  45. var tip = "";
  46. if (timer <= 0) {
  47. tip = "刚刚";
  48. } else if (Math.floor(timer / 60) <= 0) {
  49. tip = "刚刚";
  50. } else if (timer < 3600) {
  51. tip = Math.floor(timer / 60) + "分钟前";
  52. } else if (timer >= 3600 && timestamp - today >= 0) {
  53. tip = Math.floor(timer / 3600) + "小时前";
  54. } else if (timer / 86400 <= 31) {
  55. tip = Math.ceil(timer / 86400) + "天前";
  56. } else {
  57. tip = this.getLastDate(timestamp);
  58. }
  59. return tip;
  60. },
  61. };
  62. export default {
  63. mounted(el, binding) {
  64. let { value, modifiers } = binding;
  65. if (value.toString().length == 10) {
  66. value = value * 1000;
  67. }
  68. if (modifiers.tip) {
  69. el.innerHTML = Time.getFormateTime(value);
  70. el.__timeout__ = setInterval(() => {
  71. el.innerHTML = Time.getFormateTime(value);
  72. }, 60000);
  73. } else {
  74. const format = el.getAttribute("format") || undefined;
  75. el.innerHTML = tool.dateFormat(value, format);
  76. }
  77. },
  78. };