• 前端开发常用工具库


    1. /**
    2. * @desc 工具库
    3. * @author 张迪
    4. */
    5. // 首先在main.js中引入
    6. // import $util from 'util.js';
    7. // Vue.prototype.$util = $util;
    8. // 然后在页面中直接使用
    9. // this.$util.getQueryString();
    10. export default {
    11. // 获取时间差异 传入时间戳
    12. getDateDiff(dateTimeStamp){
    13. var minute = 1000 * 60;
    14. var hour = minute * 60;
    15. var day = hour * 24;
    16. var halfamonth = day * 15;
    17. var month = day * 30;
    18. var now = new Date().getTime();
    19. var diffValue = now - dateTimeStamp;
    20. if(diffValue < 0){return;}
    21. var monthC = diffValue/month;
    22. var weekC = diffValue/(7*day);
    23. var dayC = diffValue/day;
    24. var hourC = diffValue/hour;
    25. var minC = diffValue/minute;
    26. var result;
    27. if(monthC>=1){
    28. result="" + parseInt(monthC) + "月前";
    29. }
    30. else if(weekC>=1){
    31. result="" + parseInt(weekC) + "周前";
    32. }
    33. else if(dayC>=1){
    34. result=""+ parseInt(dayC) +"天前";
    35. }
    36. else if(hourC>=1){
    37. result=""+ parseInt(hourC) +"小时前";
    38. }
    39. else if(minC>=1){
    40. result=""+ parseInt(minC) +"分钟前";
    41. }
    42. else{
    43. result="刚刚";
    44. }
    45. return result;
    46. },
    47. // 获取指定前几天的日期
    48. getBeforeDate(days){
    49. var now = new Date().getTime();
    50. var ago = now - 86400000*days;
    51. var agoDate = new Date(ago);
    52. var year = agoDate.getFullYear();
    53. var mon = agoDate.getMonth()+1;
    54. var day = agoDate.getDate();
    55. mon = mon<10?'0'+mon:mon;
    56. day = day<10?'0'+day:day;
    57. var date = year+''+mon+''+day;
    58. return date;
    59. },
    60. // 从身份证号中提取性别
    61. getSex(cardNo){
    62. var sexStr = '';
    63. if (parseInt(cardNo.slice(-2, -1)) % 2 == 1) {
    64. sexStr = '男';
    65. } else {
    66. sexStr = '女';
    67. }
    68. return sexStr;
    69. },
    70. // 从身份证号中提取年龄
    71. getAge(cardNo){
    72. if (cardNo != null && cardNo != '') {
    73. var myDate = new Date();
    74. var month = myDate.getMonth() + 1;
    75. var day = myDate.getDate();
    76. var age = myDate.getFullYear() - cardNo.substring(6, 10) - 1;
    77. if (cardNo.substring(10, 12) < month || cardNo.substring(10, 12) == month && cardNo.substring(12, 14) <= day) {
    78. age++;
    79. }
    80. return age;
    81. }
    82. },
    83. // 获取URL后面多个参数
    84. getQueryString(name){
    85. var url = location.href.replace('?from=',''); // 只要替换掉?开头的即可 &不影响search的截取
    86. var search = url.substr(url.indexOf('?')); // 根据?的位置 截取search
    87. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    88. var r = search.substr(1).match(reg);
    89. if (r != null) return unescape(r[2]);
    90. return null;
    91. },
    92. // 函数防抖
    93. debounce(func, wait = 1000, immediate = true){
    94. let timer;
    95. return function() {
    96. let context = this,
    97. args = arguments;
    98. if (timer) clearTimeout(timer);
    99. if (immediate) {
    100. let callNow = !timer;
    101. timer = setTimeout(() => {
    102. timer = null;
    103. }, wait);
    104. if (callNow) func.apply(context, args);
    105. } else {
    106. timer = setTimeout(() => {
    107. func.apply(context, args);
    108. }, wait)
    109. }
    110. }
    111. },
    112. // 函数节流
    113. throttle(func, wait = 1000, type = 1){
    114. let previous = 0;
    115. let timeout;
    116. return function() {
    117. let context = this;
    118. let args = arguments;
    119. if (type === 1) {
    120. let now = Date.now();
    121. if (now - previous > wait) {
    122. func.apply(context, args);
    123. previous = now;
    124. }
    125. } else if (type === 2) {
    126. if (!timeout) {
    127. timeout = setTimeout(() => {
    128. timeout = null;
    129. func.apply(context, args)
    130. }, wait)
    131. }
    132. }
    133. }
    134. },
    135. // 计算两点直接距离
    136. GetDistance(lat1,lng1,lat2,lng2){
    137. var radLat1 = lat1*Math.PI / 180.0;
    138. var radLat2 = lat2*Math.PI / 180.0;
    139. var a = radLat1 - radLat2;
    140. var b = lng1*Math.PI / 180.0 - lng2*Math.PI / 180.0;
    141. var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
    142. Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
    143. s = s *6378.137 ;// EARTH_RADIUS;
    144. s = Math.round(s * 10000) / 10000;
    145. return s;
    146. },
    147. // 输入银行卡号时每四位自动加空格
    148. everyFour(val){
    149. return val.replace(/\s/g,'').replace(/[^\d]/g,'').replace(/(\d{4})(?=\d)/g,'$1');
    150. },
    151. }

  • 相关阅读:
    C语言-深度剖析数据在内存中的存储
    C++搭建简单的服务器
    7.1 程序加壳
    CleanMyMac X专业清理软件更新 助力M2芯Mac保持最佳状态
    计算机毕业设计springboot+vue基本微信小程序的旅游社系统
    HTTP协议
    C# Onnx Yolov8 Detect 印章 指纹捺印 检测
    【分享课】腾讯云大讲堂TDSQL(PG版)OSS平台管理-周四晚19:30
    RabbitMQ多线程配置和异常解决办法
    FreeRTOS进阶-创建自己的工程
  • 原文地址:https://blog.csdn.net/zd1007129657/article/details/126240350