项目开发过程中,一些常用的方法

以下一些在开发过程中封装的常用方法,供参考由于一些方法是很久之前写下来的,语法上比较旧,再使用的时候再进行修改//获取当前时刻的时间
// type = 1年月日,type=2时分秒,fommatter="-"表示年月日用-隔开,否则用"/"隔开
export function curTimeFun(type,fommatter) {
  const myDate = new Date();
  const year = myDate.getFullYear()>9?myDate.getFullYear():‘0‘+myDate.getFullYear();
  const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:‘0‘+(myDate.getMonth() + 1);
  const date = myDate.getDate()>9?myDate.getDate():‘0‘+myDate.getDate();
  const h = myDate.getHours()>9?myDate.getHours():‘0‘+myDate.getHours();       //获取当前小时数(0-23)
  const m = myDate.getMinutes()>9?myDate.getMinutes():‘0‘+myDate.getMinutes();     //获取当前分钟数(0-59)
  const s = myDate.getSeconds()>9?myDate.getSeconds():‘0‘+myDate.getSeconds();
  let nowTime = "";
  if(type == ‘1‘){
    if(fommatter == ‘-‘) {
      nowTime = year + ‘-‘ + month + "-" + date;
    } else {
      nowTime = year + ‘/‘ + month + "/" + date;
    }
  } else if(type == ‘2‘){
    nowTime = h + ‘:‘ + m + ":" + s;
  } else {
    if(fommatter == ‘-‘) {
      nowTime = year + ‘-‘ + month + "-" + date + " " + h + ‘:‘ + m + ":" + s;
    } else {
      nowTime = year + ‘/‘ + month + "/" + date + " " + h + ‘:‘ + m + ":" + s;
    }
  }
  return nowTime;
}

  

// 获取今天星期几
export function getWeekFun() {
  const weekDay = [‘星期日‘,‘星期一‘,‘星期二‘,‘星期三‘,‘星期四‘,‘星期五‘,‘星期六‘]
  let week = new Date().getDay();
  return weekDay[week];
}

  

// 查询最近n年,n表示前多少年的意思// 例如查询近5年的时间,n=4,不包括今年的的前4年
export function getLastNYear(n) {
  const myDate = new Date;
  const curYear = myDate.getFullYear();
  if(n ==‘‘ || n==undefined || n == null){
    n =0;
  }
  let rstYear = curYear*1 - n*1;
  return rstYear;
}

  

// 查询最近n月,n表示前多少月的意思
export function getLastNMonth(n) {
  const myDate = new Date;
  const curYear = myDate.getFullYear();
  const curMonth = myDate.getMonth()+1; // 月份从0开始算起。需要加1
  if(n ==‘‘ || n==undefined || n == null){n =0;}
  let rstYear = ‘‘;
  let rstMonth = ‘‘;
  if(n>curMonth){ //表示去到去年的月份,年份需要去到上一年
    rstYear = curYear*1-1*1;
    rstMonth = 12-(n-curMonth)+1;
  } else {
    rstYear =curYear;
    rstMonth = curMonth -n;
  }
  rstMonth = (rstMonth)>9?rstMonth:‘0‘+(rstMonth);
  let rstYearMonth = rstYear + ‘-‘ + rstMonth;
  return rstYearMonth;
}

 

// 获取最近n天的时间,n表示前多少天的意思。
// 例如查询近7天的时间,n=6,不包括当天的的前6天
export function getLastNDate(n,fommatter = ‘-‘) {
  const d = new Date();
  var myDate=new Date(d.getTime()-86400000*n);  // 获取前n天的日期
  const year = myDate.getFullYear()>9?myDate.getFullYear():‘0‘+myDate.getFullYear();
  const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:‘0‘+(myDate.getMonth() + 1);
  const date = myDate.getDate()>9?myDate.getDate():‘0‘+myDate.getDate();
 let last7Date = year + fommatter + month + fommatter + date; return last7Date;
return last7Date; }

  

// 获取最近的n个小时,n表示前多少小时的意思。
export function getLastNHour(n,fommatter = ‘-‘) {
  const d = new Date();
  var myDate=new Date(d.getTime()-86400000*n);  // 获取前n天的日期
  const year = myDate.getFullYear()>9?myDate.getFullYear():‘0‘+myDate.getFullYear();
  const month = (myDate.getMonth() + 1)>9?myDate.getMonth() + 1:‘0‘+(myDate.getMonth() + 1);
  const date = myDate.getDate()>9?myDate.getDate():‘0‘+myDate.getDate();
  const h = myDate.getHours()>9?myDate.getHours():‘0‘+myDate.getHours();       //获取当前小时数(0-23)
  const m = myDate.getMinutes()>9?myDate.getMinutes():‘0‘+myDate.getMinutes();     //获取当前分钟数(0-59)
  const s = myDate.getSeconds()>9?myDate.getSeconds():‘0‘+myDate.getSeconds();
 let  nowTime = year + fommatter + month + fommatter + date + " " + h + fommatter + m + fommatter + s;

return nowTime; }

  

/*菜单树下拉,禁止选择当前项及其子项,以防止死循环*/
export function diGuiTreeEdit(item,compID) {  // 编辑情况下,禁止选择当前节点及其子节点
  let data = item;
  let treeAry = [];
  for (let i in data) {
    let v = data[i];
    let node = {};
    if (v === null || v === undefined) {}
    else {
      if (v.children && v.children.length > 0) {
        if (v.id == compID) {
          node.isDisabled = true;
        } else {
          node.isDisabled = false;
        }
        node.id = v.id;
        node.label = v.label;
        node.name = v.name;
        node.children = diGuiTreeEdit(v.children, compID);
        treeAry.push(node);
      } else {
        if (v.id == compID) {
          node.isDisabled = true;
        } else {
          node.isDisabled = false;
        }
        node.id = v.id;
        node.label = v.label;
        node.name = v.name;
        treeAry.push(node);
      }
    }
  }
  return treeAry;
};

  

// 判断数据是否为空,为空的话返回指定的数值
export function isNullORFalse(checkVal,rstVal) {
  if(checkVal == ‘‘ || checkVal == null || checkVal == undefined || typeof(checkVal) == undefined){
    if(rstVal == null || rstVal == ‘‘){
      rstVal = "";
    }
    return rstVal;
  } else {
    return checkVal;
  }
}

  

// 全部替换
// str表示原字符串,s表示要被替换的内容,replaceStr用于替换的内容
export function repalceAll(str, s ,replaceStr = ‘‘) {
  var reg = new RegExp(s, "g")//g,表示全部替换
  return str.replace(reg,replaceStr)
}

  

//计算两个日期天数差的函数,通用,时间格式为yyyy-MM-dd格式
export function dateDiff(sDate1, sDate2) {  //sDate1和sDate2是yyyy-MM-dd格式
  let aDate, oDate1, oDate2, iDays
  aDate = sDate1.split("-")
  oDate1 = new Date(aDate[1] + ‘-‘ + aDate[2] + ‘-‘ + aDate[0])  //转换为yyyy-MM-dd格式
  aDate = sDate2.split("-")
  oDate2 = new Date(aDate[1] + ‘-‘ + aDate[2] + ‘-‘ + aDate[0])
  iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24) //把相差的毫秒数转换为天数
  return iDays;  //返回相差天数
}

  

// 当数值过大是,超过9位数(亿)转为亿单位展示
export function rspHundredMill(val, unit = ‘HM‘) {
  if(unit == ‘HM‘) {
    if(val>100000000) { //大于1亿
      return (val/100000000).toFixed(3)+‘亿‘
    } else {
      return  val
    }
  }
}

  

// 根据id,以及id的值,遍历list对象,得出label
export function rstLabelFormID(list, id, label, idVal) {
  let rsp = ‘‘
  for (let i = 0; i < list.length; i++) {
    if (list[i][id] === idVal) {
      rsp = list[i][label]
      break
    }
  }
  return rsp
}

  

// 根据id,以及id的值,遍历list集合,得出对应的对象
export function rstListFormID(list, id, idVal) {
  let rsp = undefined
  for (let i = 0; i < list.length; i++) {
    if (list[i][id] === idVal) {
      rsp = list[i]
      break
    }
  }
  return rsp
}

  

// 对象深拷贝
export function deepCopy(obj) {
  var result = Array.isArray(obj) ? [] : {}
  for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
      if (typeof obj[key] === ‘object‘ && obj[key] !== null) {
        result[key] = deepCopy(obj[key])
      } else {
        result[key] = obj[key]
      }
    }
  }
  return result
}

  

// 拖动调整左右两侧div的宽度
// resizeName表示拖到的工具条的className
// left表示左边的区域的className。leftWid表示左边的最小宽度
// midName表示右边区域的className。rightWid表示右边的最小宽度
// boxName表示父级元素的className
export function  dragControllerDiv(resizeName=‘resize‘, leftName = ‘left‘, midName = ‘mid‘, boxName = ‘box‘, leftWid = 250, rightWid = 800){
  var resize = document.getElementsByClassName(resizeName);
  var left = document.getElementsByClassName(leftName);
  var mid = document.getElementsByClassName(midName);
  var box = document.getElementsByClassName(boxName);
  for (let i = 0; i < resize.length; i++) {
    // 鼠标按下事件
    resize[i].onmousedown = function (e) {
      var startX = e.clientX;
      resize[i].left = resize[i].offsetLeft;
      // 鼠标拖动事件
      document.onmousemove = function (e) {
        var endX = e.clientX;
        var moveLen = resize[i].left + (endX - startX); // (endx-startx)=移动的距离。resize[i].left+移动的距离=左边区域最后的宽度
        var maxT = box[i].clientWidth - resize[i].offsetWidth;  // 容器宽度 - 左边区域的宽度 = 右边区域的宽度

        if (moveLen < leftWid) moveLen = leftWid; // 左边区域的最小宽度为150px
        if (moveLen > maxT - rightWid) moveLen = maxT  - rightWid;  //右边区域最小宽度为800px

        resize[i].style.left = moveLen; // 设置左侧区域的宽度

        for (let j = 0; j < left.length; j++) {
          left[j].style.width = moveLen + ‘px‘;
          mid[j].style.width = (box[i].clientWidth - moveLen - 10) + ‘px‘;
        }
      }
      // 鼠标松开事件
      document.onmouseup = function (evt) {
        document.onmousemove = null;
        document.onmouseup = null;
        resize[i].releaseCapture && resize[i].releaseCapture(); //当你不在需要继续获得鼠标消息就要应该调用ReleaseCapture()释放掉
      }
      resize[i].setCapture && resize[i].setCapture(); //该函数在属于当前线程的指定窗口里设置鼠标捕获
      return false;
    }
  }
}

  



原文地址:https://www.cnblogs.com/luoxuemei/p/11646108.html

时间: 2024-10-07 10:40:01

项目开发过程中,一些常用的方法的相关文章

iOS项目开发过程中的目录结构(转)

iOS项目开发过程中的目录结构 我在这个目录结构方面真是吃了不少苦,开始总是觉得快点写快点写,后来发现只有快是不行的,在没有给整个项目的结构有一个清楚的认识和了解之前就匆匆动笔(敲代码啦)是非常冒失的, 好在在后来修改的过程中慢慢琢磨出来一套目录结构,现在发出来给大家参考一下. 项目主目录结构如图: 1.Network主要用于进行网络请求,以及请求完成后对数据进行处理使用, 2.Category:类目,这个文件夹放在这里我觉得是不太准确的,但是具体应该放在哪里我一直无法确实下来 3.Contro

在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性。

        在项目开发过程中,应该按要求编写好十三种文档,文档编制要求具有针对性.精确性.清晰性.完整性.灵活性.可追溯性. ◇ 可行性分析报告:说明该软件开发项目的实现在技术上.经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由. ◇ 项目开发计划:为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员.开发的进度.开发经费的预算.所需的硬件及软件资源等. ◇ 软件需求说明书(软件规格说明书):对所开发软件的功能.性能.

浅谈软件项目开发过程中的主要项目风险及对策

软件项目成果的需求分析方和软件项目的承担者都十分关心这样的一个问题:什么样的因素会导致软件项目的失败?与项目有关的因素的改变将对按时.按经费预算交付符合预定质量要求的软件成果产生什么样的影响?这些都属于软件项目开发过程中考虑的风险问题. 软件项目的风险是指在软件开发过程中可能出现的不确定因而造成损失或者影响,如资金短缺.项目进度延误.人员变更以及预算和进度等方面的问题.风险关注未来的事情,这意味着,软件风险涉及选择及选择本身包含的不确定性,软件开发过程及软件产品都要面临各种决策的选择.风险是介于

问题:C# ToString(&quot;P&quot;);结果:c#中的常用ToString()方法总结

c#中的常用ToString()方法总结 很多类都重写了ToString方法, 导致很多类的tostring到底执行了什么,有哪些参数,都不清楚 对于int,double等的tostring: C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString("E") 2.500000E+005 F 固定点 25.ToString("F2&q

php中的常用魔术方法总结

以下是对php中的常用魔术方法进行了详细的总结介绍,需要的朋友可以过来参考下 常用的魔术方法有:__Tostring ()  __Call()  __autoLoad()  __ clone()  __GET()   __SET()    __isset()  __unset() 1.__Tostring()   用于定义输出对象引用时调用  常用于打印一些对象的信息 必须有返回值eg:有一个persion类Persion per =new persion()Echo per;    //直接调

面向对象中的常用魔术方法

__autoload($classname);这个魔术方法与其他魔术方法不同的是,它不是在类中使用的,其他都是在类内部使用,只要在页面中用到一个类,就会自动将这个类名传给这个函数的参数.在开发中用它来自动加载类. __sleep():是在对象序列化也叫串行化时,自动调用的方法,因为对象序列化的时候serialize($object),如果类里不加这个魔术方法,会自动将类中的所有属性全部序列化,如果只想让某些属性被序列化,就要用到这个方法,这个方法返回一个由类的属性组成的数组.序列哪个属性就将那个

javascript中数组常用的方法和属性

前言 在javascript中,数组是一种非常重要的数据类型,我们时常会和它打交道,最近在开发项目中频繁的使用到数组,但是自己对数组的众多方法已经是非常模糊了,为了方便自己以后能够更好的使用数组中的属性和方法,在此记录一下. 数组常用的属性和方法 常用属性 Array.length:返回数组的大小 常用方法 Array.pop():删除并返回数组的最后一个元素 Array.push():向数组的结尾添加元素 Array.shift():将元素移除数组 Array.unshift():向数组头部添

StringUtils中的常用的方法

org.apache.commons.lang.StringUtils中常用的方法,这里主要列举String中没有,且比较有用的方法: 1. 检查字符串是否为空: static boolean isBlank(CharSequence str)  判断字符串是否为空或null;  static boolean isNotBlank(CharSequence str) 判断字符串是否非空或非null; StringUtils.isBlank("a");  返回结果为: false; 2.

多线程(2) — 线程中一些常用的方法和关键字

1.start()和run() start()方法是是开启线程的方法,这个方法执行后,一个线程才真正的进入RUNNABLE状态.run()方法是线程中具体执行的业务活动,一般都要重写run()方法. 2.stop() stop()方法在结束线程时,会直接终止线程,并立即释放这个线程所持有的锁,而锁恰恰是用来维护对象一致性的.例如写线程正在写到一半,线程被强行终止,对象就会被写坏了,同时锁已经释放,其他对象读到这个对象是写坏了的对象. 3.interrupt().isInterrupted().i