time.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import moment from 'moment';
  2. import tool from '@/utils/tool';
  3. let Time = {
  4. getFormateTime: function (date) {
  5. let timestamp = date.includes("T") && date.includes("Z") && moment(date, "YYYY-MM-DDTHH:mm:ss[Z]").valueOf() || moment(date).valueOf();
  6. let now = moment().valueOf();
  7. let today = moment().startOf('day').valueOf();
  8. let timer = (now - timestamp) / 1000;
  9. let tip = '';
  10. if (timer <= 0) {
  11. tip = '刚刚';
  12. } else if (Math.floor(timer / 60) <= 0) {
  13. tip = '刚刚';
  14. } else if (timer < 3600) {
  15. tip = Math.floor(timer / 60) + '分钟前';
  16. } else if (timer >= 3600 && (timestamp - today >= 0)) {
  17. tip = Math.floor(timer / 3600) + '小时前';
  18. } else if (timer / 86400 <= 31) {
  19. tip = Math.ceil(timer / 86400) + '天前';
  20. } else {
  21. tip = tool.dateFormat(date, "YYYY-MM-DD");
  22. }
  23. return tip;
  24. }
  25. }
  26. export default (el, binding) => {
  27. let { value, modifiers } = binding
  28. if (!value) {
  29. return false
  30. }
  31. if (modifiers.tip) {
  32. el.innerHTML = Time.getFormateTime(value)
  33. el.__timeout__ = setInterval(() => {
  34. el.innerHTML = Time.getFormateTime(value)
  35. }, 60000)
  36. } else {
  37. const format = el.getAttribute('format') || undefined
  38. el.innerHTML = tool.dateFormat(value, format)
  39. }
  40. }