前端常用函数封装

本文汇总了前端开发中常用的函数封装,包括获取工作日后日期、解析URL参数、日期格式化、身份证信息解析、微信小程序的网络请求封装、图片处理(base64转换和压缩)、搜索分页功能、数据类型判断、base64解码、异步复制以及两种排序算法(冒泡排序和选择排序)等。更多内容敬请期待。
摘要由CSDN通过智能技术生成

常用函数封装

获取某日期若干个工作日后的日期

* 参数: 
*   time: [String] 给定日期 yyyy-MM-dd
*   itervalByDay: [Number] 相隔工作日
*   separator: [String] 年月日分隔符
* 返回:
*   rq:[String] 匹配的日期yyyy-MM-dd
var getworkday = function(time, itervalByDay, separator = '-'){
   
  var str = time.split("-");
  
  var date = getDate();
  date.setUTCFullYear(str[0], str[1] - 1, str[2]);
  date.setUTCHours(0, 0, 0, 0);
  
  var millisceonds =date.getTime();
  for(var i = 1; i <= itervalByDay; i++){
   
    millisceonds += 24 * 60 * 60 * 1000;
    date.setTime(millisceonds);
    // 如果是周末,计数i回退1,既跳过
    if(date.getDay() == 0 || date.getDay() == 6) i--;
  }
  
  var year = date.getFullYear();
  var month = (date.getMonth() + 1);
  var day = date.getDate();
  var rq = year + separator + month + separator + day;
  
  return rq;
}

解析URL参数

* 参数: 
*   url: [String] 解析的URL,可选,不传该值默认本地href
* 返回:
*   obj:[Object] 参数集合对象
function getQueryParam(url) {
   
    const href = url || window.location.href;
    let args = href.split('?');
    
    // 没有参数直接返回{}
    if (args[0] === href) {
   
        return {
   };
    }
    
    var hrefarr = args[1].split('#')[0].split('&');
    var obj = {
   };
    for (var i = 0; i < hrefarr.length; i++) {
   
        hrefarr[i] = hrefarr[i].split('=');
        obj[hrefarr[i][0]] = hrefarr[i][1];
    }
    return obj;
}

格式化日期

* 参数: 
*   date: 时间戳 [Date]
*   isTime: 是否返回具体时间 [Boolean]
*   separator: 年月日分隔符 [String]
* 返回:
*   isTime: false => yyyy-MM-dd [String]
*   isTime: true => yyyy-MM-dd HH:mm:ss [String]
const formatDate = (date, isTime = false, separator = '-') => {
   
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  let d = [year, month, day].map(_formatNumber).join(separator)
  if (isTime) {
   
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()
    const time = [hour, minute, second].map(_formatNumber).join(':')

    d = `${
     d} ${
     time}`
  }
  ret
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值