前端 js -- 自定义方法 -- 处理日常问题

前端 js ---- 自定义方法 ---- 处理日常问题

1、日期补0(例:2----->‘02’)
2、删除数组指定的某个元素
3、当前时间
4、数组去重 ([1, 3, 5, 1, 2, 3]====>[1, 3, 5, 2])
5、去除大括号
6、去除双引号
7、js设置 获取 删除 cookie
8、时间戳转换
9、从小到大排序
10、判断json字符串 与 string
11、当鼠标离开导航栏 二级菜单消失
12.定位到页面某一个元素的位置
13.适配页面
14.不足两位小数补0(例:2----->‘2.00’)
15.获取两个日期内的所有日期(例:getDiffDate(“2023-03-31”, “2023-04-05”)====>[“2023-03-31”, “2023-04-01”, “2023-04-02”, “2023-04-03”, “2023-04-04”, “2023-04-05”])
16.日期格式转换(例:“2022-10-1” ===> Sat Oct 01 2022 00:00:00 GMT+0800 (中国标准时间))

// 1、日期补0
function Appendzero(obj) {
  if (obj < 10) return "0" + "" + obj;
  else return obj;
}
// 2、删除数组指定的某个元素
Array.prototype.indexOf1 = function (val) {
  for (var i = 0; i < this.length; i++) {
    if (this[i] == val) return i;
  }
  return -1;
};
Array.prototype.remove1 = function (val) {
  var index = this.indexOf1(val);
  if (index > -1) {
    this.splice(index, 1);
  }
};
//3、当前时间
<div id="showTime"></div>
function time() {
  var days = new Array("日", "一", "二", "三", "四", "五", "六");
  dt = new Date();
  var y = dt.getFullYear(); //获取四位数年
  var m = dt.getMonth() + 1; //获取月份
  var d = dt.getDate(); //获取日期
  var h = dt.getHours(); //获取时
  var i = dt.getMinutes(); //获取分
  var s = dt.getSeconds(); //获取秒
  var x = dt.getDay(); //获取星期
  document.getElementById("showTime").innerHTML =
    Appendzero(y) +
    "年" +
    Appendzero(m) +
    "月" +
    Appendzero(d) +
    "日" +
    " " +
    Appendzero(h) +
    ":" +
    Appendzero(i) +
    ":" +
    Appendzero(s) +
    " " +
    "星期" +
    days[x]; //进行组合
  setTimeout("time()", 1000); //设定定时器,循环运行
}
time();
// 4、数组去重
第一种方法:
function ArrayToHeavy(arr) {
  //过滤掉原数组中重复的数字,返回新的数组
  return arr.filter((item, index) => {
    //遍历出数组中数字第一次出现的下标,与数字所在数组的下标相比较,
    //为true就是第一次出现
    return arr.indexOf(item) === index;
  });
}
第二种方法:
function ArrayToHeavy2(arr){
	return Array.from(new Set(arr))
}
// 5、去除大括号
function removeBlock(str) {
  if (str) {
    var reg = /^\{/gi
    var reg2 = /\}$/gi
    str = str.replace(reg, '')
    str = str.replace(reg2, '')
    return str
  } else {
    return str
  }
}
// 6、去除双引号
var a = {"1":"1","2":"2"}
a1=JSON.stringify(a).replace(/\"/g, "")
console.log(a1) //"{1:1,2:2}"
//7、js设置 获取 删除 cookie
    // 1、设置cookie
    // function setCookie(name, value){
    //     var argv = setCookie.arguments;
    //     var argc = setCookie.arguments.length;
    //     var expires = (argc > 2) ? argv[2] : null;
    //     if(expires!=null){
    //         var LargeExpDate = new Date ();
    //         LargeExpDate.setTime(LargeExpDate.getTime() + (expires*1000*3600*24));
    //     }
    //     document.cookie = name + "=" + escape (value)+((expires == null) ? "" : ("; expires=" +LargeExpDate.toGMTString()));
    // }
    // 2、设置cookie
    function setCookie(name,value){
        var Days = 30;
        var exp = new Date();
        exp.setTime(exp.getTime() + Days*24*60*60*30);
        document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
    }
    // 获取cookie
    function getCookie(c_name) {
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) c_end = document.cookie.length;
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return "";
    }
    // 删除cookie
    function deleteCookie(name){
        var expdate = new Date();
        expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));
        setCookie(name, "", expdate);
    }
//8、时间戳转换  1617701413000  nS为10位
let nS = 1617701413
function getLocalTime(nS) {     
  let time = new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');     
  console.log('time :>> ', time);
  return time
}
//9、从小到大排序
let arrSort=[{order:2},{order:1},{order:4},{order:5},{order:3},{order:7},{order:6}]
function sort(arrSort){
  // if(!arrSort) return
  var i,j,temp;
  for(i=0;i<arrSort.length-1;i++){
    for(j=arrSort.length-1;j>i;j--){
      if(parseInt(arrSort[j].order) <parseInt(arrSort[j-1].order)){
        temp = arrSort[j-1];
        arrSort[j-1]=arrSort[j];
        arrSort[j]=temp;
      }
    }
  }
  return arrSort
}
sort(arrSort)
//10、判断json字符串 与 string
 isJsonObj(str) {
      try {
        if (typeof JSON.parse(str) === 'object') {
          return true
        }
      } catch (e) {
      }
      return false
    }
//11、当鼠标离开导航栏 二级菜单消失(关键点:鼠标离开一级菜单最外面壳子之后,二级菜单隐藏)
  $('.L233_Ul_first').mouseleave(function(){
        $('.L233_Ul_second').hide()
})
//12.定位到页面某一个元素的位置
function abilityExperience(){
  let nlty = $("#nlty").offset()
  $('body,html').animate({
    scrollTop: nlty.top
  }, 200);
}
//13.适配页面
$(function () {
  function resize() {
      var windowW = $(window).width();
      var initWH = 1340 / 820;
      //1440尺寸下都用1280
      if (windowW <= 1440) {
          windowW = 1280;
      } else {
      }
      $("body,html").css({
          fontSize: windowW * 12 / 1280 + 'px'
      });
  }
  resize();
  $(window).bind("resize", resize)
});
// 14.不足两位小数补0
function fillZero(num) {
  if(typeof(num) == 'number'){ // 判断是否为数字类型   数字类型自动  舍0
      num = num.toString() // 先转成  字符串类型
      if(num.indexOf(".") != -1){ // 判断 有无小数点  0 表示 有小数点  -1  表示没有小数点
          let b = num.split('.') // 根据小数点  转换字符串为数组
          if(b[1].length == 1){ // 判断 有几位小数  如果有一位  加一个0
              b = b.join('.')
              b += '0'
              num = b
          }
      }else {
          num += '.00'
      }
  }else if(typeof(num) == 'string'){ // 同理
      if(num.indexOf(".") != -1){
          let b = num.split('.')
          if(b[1].length == 1){
              b = b.join('.')
              b += '0'
              num = b
          }
      }else {
          num += '.00'
      }
  }
  return num;
}
// 15.获取两个日期内的所有日期
function getDiffDate(start, end) {
    const startTime = new Date(start);
    const endTime = new Date(end);
    const dateArr = [];
    while ((endTime.getTime() + 24 * 3600000 - startTime.getTime()) > 0) {
        const year = startTime.getFullYear();
        const month = (startTime.getMonth() + 1).toString().length === 1 ? '0' + (parseInt((startTime.getMonth()+1).toString(), 10)) : (startTime.getMonth()+1);
        const day = startTime.getDate().toString().length === 1 ? '0' + startTime.getDate() : startTime.getDate();
        dateArr.push(year + '-' + month + '-' + day);
        startTime.setDate(startTime.getDate() + 1);
    }
    return dateArr;
}
getDiffDate("2022-10-1", "2023-1-15")

// 16.日期格式转换"2022-10-1" ===> Sat Oct 01 2022 00:00:00 GMT+0800 (中国标准时间)
function getDate(datestr) {
    const temp = datestr.split('-');
    if (temp[1] === '01') {
      temp[0] = parseInt(temp[0], 10) - 1;
      temp[1] = '12';
    } else {
      temp[1] = parseInt(temp[1], 10) - 1;
    }
    const date = new Date(temp[0], temp[1], temp[2]);
    return date;
  }

目前就是以上这些,后期遇到其他的,我会持续更新,希望对各位刚入行的朋友们有用!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xie_bro777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值