utils.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. function subTimeStr(str) {
  2. if (!str || typeof str != "string") return;
  3. let index = str.indexOf(" ");
  4. return str.substring(0, index);
  5. }
  6. function datetimeFormat(type = "yyyy-MM-dd HH:mm:ss", t = new Date()) {
  7. let timer, W;
  8. let _d = new Date(t);
  9. let yyyy = _d.getFullYear();
  10. let M,
  11. MM = _d.getMonth() + 1;
  12. if (MM < 10) MM = "0" + MM;
  13. let d,
  14. dd = _d.getDate();
  15. if (dd < 10) dd = "0" + dd;
  16. let h,
  17. hh,
  18. H,
  19. HH = _d.getHours();
  20. if (h > 12) h = h - 12;
  21. if (hh > 12) hh = hh - 12;
  22. if (hh < 10) hh = "0" + hh;
  23. if (HH < 10) HH = "0" + HH;
  24. let mm = _d.getMinutes();
  25. if (mm < 10) mm = "0" + mm;
  26. let ss = _d.getSeconds();
  27. if (ss < 10) ss = "0" + ss;
  28. let w = _d.getDay();
  29. if (0 == w) w = 7;
  30. switch (type) {
  31. case "yyyy-MM-dd HH:mm:ss": {
  32. timer = `${yyyy}-${MM}-${dd} ${HH}:${mm}:${ss}`;
  33. break;
  34. }
  35. case "MM-dd HH:mm:ss": {
  36. timer = `${MM}-${dd} ${HH}:${mm}:${ss}`;
  37. break;
  38. }
  39. case "yyyy-MM-dd": {
  40. timer = `${yyyy}-${MM}-${dd}`;
  41. break;
  42. }
  43. case "HH:mm:ss": {
  44. timer = `${HH}:${mm}:${ss}`;
  45. break;
  46. }
  47. case "yyyy/MM/dd": {
  48. timer = `${yyyy}/${MM}/${dd}`;
  49. break;
  50. }
  51. case "年月日": {
  52. timer = `${yyyy}年${M}月${d}日`;
  53. break;
  54. }
  55. case "年月月日日": {
  56. timer = `${yyyy}年${MM}月${dd}日`;
  57. break;
  58. }
  59. }
  60. return timer;
  61. }
  62. const throttle = (fn, wait) => { //节流
  63. var prev = Date.now();
  64. return function () {
  65. var context = this;
  66. var args = arguments;
  67. var now = Date.now();
  68. console.log(now - prev > wait)
  69. if (now - prev > wait) {
  70. fn.apply(context, args)
  71. prev = Date.now()
  72. }
  73. }
  74. }
  75. const debounce = (func, wait) => { //防抖
  76. // wait:500ms;func:被频繁触发的事件
  77. let timeout;
  78. return function () {
  79. let context = this;
  80. let args = arguments;
  81. let later = () => {
  82. timeout = null;
  83. func.apply(context, args);
  84. };
  85. clearTimeout(timeout);
  86. timeout = setTimeout(later, wait);
  87. }
  88. }
  89. module.exports = {
  90. subTimeStr,
  91. datetimeFormat,
  92. throttle,
  93. debounce
  94. }