friendlytimespan.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /**
  2. * @fileOverview
  3. *
  4. * 渲染当前时间离指定时间的时长
  5. *
  6. * @author: techird
  7. * @copyright: Baidu FEX, 2014
  8. */
  9. KityMinder.registerUI('widget/friendlytimespan', function(minder) {
  10. $.extend($.fn, {
  11. displayFriendlyTime: function(time) {
  12. return this.each(function() {
  13. display($(this)
  14. .addClass('friendly-time')
  15. .data('time', time));
  16. });
  17. }
  18. });
  19. function getTimeText(timeInMs) {
  20. var ms = Math.abs(timeInMs - new Date()),
  21. s = ms / 1000,
  22. m = s / 60,
  23. h = m / 60,
  24. d = h / 24;
  25. if (s < 60) return minder.getLang('ui.justnow', s | 0);
  26. if (m < 60) return minder.getLang('ui.minutesago', m | 0);
  27. if (h < 24) return minder.getLang('ui.hoursago', h | 0);
  28. if (d < 2) return minder.getLang('ui.yesterday');
  29. if (d <= 30) return minder.getLang('ui.daysago', d | 0);
  30. return minder.getLang("ui.longago");
  31. }
  32. function display($element) {
  33. $element.text(getTimeText($element.data('time')));
  34. }
  35. function update() {
  36. $('.friendly-time').each(function() {
  37. display($(this));
  38. });
  39. }
  40. setInterval(update, 60000);
  41. });