1.src同级建commFunction=》timer.js

2.main.js引入

import time from '../commonFunction/time'
Vue.prototype.time=time
=======================================

情况一1.时间戳

// 时间戳转时间 2020-4-24 00:30:00
    timeStamp(val) {
val = val.toString()
if(val.length == 10) {
let time = val * 1000;
let timestamp4 = new Date(time);
return (timestamp4.toLocaleDateString().replace(/\//g, "-") +" " + timestamp4.toTimeString().substr(0, 8));
} else {
let timestamp4 = new Date(val);
return (timestamp4.toLocaleDateString().replace(/\//g, "-") +" " +timestamp4.toTimeString().substr(0, 8));
}
},
// 2017-4-8 14:11:33转2017-04-08 14:11:33
handeldate(m){
let o = m[0]+m[1]+m[2]+m[3]
if(m.length==18){
if(m[6]=='-'){
return o+m[4]+'0'+m[5]+m[6]+m[7]+m[8]+m.slice(9)
}
if(m[7]=='-'){
return o+m[4]+m[5]+m[6]+m[7]+'0'+m[8]+m.slice(9)
}
}else if(m.length==17){
return o+m[4]+'0'+m[5]+m[6]+'0'+m[7]+m.slice(8)
}else{
return m
}
}
页面使用:
appList.forEach(element => {
element.create_time = this.time.handeldate(this.time.timeStamp(element.create_time))
});
=======================================

二,生成订单号HWsdAjkFlvh...152652366(后边是时间戳,头部可自定义)

createOrder(){
//当前时间戳
let stamp = Date.parse(new Date()).toString()
let orderEnd = ''
let letter = 'A,B,C,E,F,G,H,J,K,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m'
let letterStr = letter.split(',')
let letLength = letterStr.length
//设置订单号后半截随机的长度
for(let i=0;i<10;i++){
orderEnd+=letterStr[this.randomNum(0,letLength-1)]
}
return 'HW'+orderEnd+stamp.substr(0,10)
},
    //随机数0-n
    randomNum(minNum,maxNum){ 
        switch(arguments.length){ 
            case 1: 
                return parseInt(Math.random()*minNum+1,10); 
            break; 
            case 2: 
                return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
            break; 
                default: 
                    return 0; 
                break; 
        } 
    },
 

=======================================

三,生成6位随机码8b1BQl(需要上边的随机数方法)

createShortLink(){
let shortLink = ''
let letter = 'A,B,C,E,F,L,M,N,P,Q,R,S,T,W,X,Y,Z,1,2,3,4,5,6,7,8,9,0,q,a,e,r,t,y,u,o,p,g,h,j,k,l,x,b,n,m,1,2,3,4,5,6,7,8,9,0'
let letterStr = letter.split(',')
let letLength = letterStr.length
for(let i=0;i<6;i++){
shortLink+=letterStr[this.randomNum(0,letLength-1)]
}
return shortLink
}

=======================================

四,做echart图表的几个跟日期有关的方法

//输出相同元素的个数
export function unique (arr) {
        var resultObj = {};
        var result = [];
        var result2 = [];
        for(var i=0; i<arr.length; i++){
        if(result.indexOf(arr[i]) == -1){
            result.push(arr[i]);
        }else{
            if(result2.indexOf(arr[i]) == -1){
                result2.push(arr[i]);
        }
        }
        }
        var obj = {}
        arr.forEach((v,k)=>{
        if(obj[v]){
            obj[v]++;
        }else{
            obj[v] = 1;
        }
        });
        resultObj.result = result;
        resultObj.result2 = result2;
        resultObj.obj = obj;
        return {resultObj}
    }
//获取最近day天日期数组,含今天(x横坐标)
export function getBeforeDateLineX(day){
    var ot = new Date().getTime(),
        da = [],
        nd,
        month,
        day;
        for(var i=day-1;i>-1;i--){
            nd = ot - i*24*60*60*1000;
            month = new Date(nd).getMonth()+1,
            day = new Date(nd).getDate();
            da.push(month+'.'+day);
        }
      return da;
}
//获取最近n天的两个端点时间戳,当前时刻至n天前的当前时刻(含今天,即时)
export function getTimePoint(n){
    let value1 = []
    let dateToDay = parseInt(new Date().getTime()/1000)
    value1[0] = dateToDay - n*24*60*60
    value1[1] = dateToDay
    return value1
}
//获取最近n天的两个端点时间戳,当前天至n天前(不含今天,整点)
export function getTimePointZero(n){
    let today = new Date();
    let dateToDay =  parseInt(new Date(today.toDateString()).getTime()/1000);
    let value1 = []
    value1[0] = dateToDay - n*24*60*60
    value1[1] = dateToDay
    return value1
}
//获取前第n天的初末时刻
export function beforeYesterdayZero(n){
    let today = new Date();
    let dateToDay =  parseInt(new Date(today.toDateString()).getTime()/1000);
    let value1 = []
    value1[0] = dateToDay - n*24*60*60
    value1[1] = dateToDay - (n-1)*24*60*60
    return value1
}
//获取最近日期数组,可不含今天(x横坐标)参数是某两天00:00的10位时间戳
export function getGroupDateLineX(tZero1,tZero2){
    let a = tZero1
    let arrStamps = [tZero1]
    for(let i=0;i<100;i++){
        if(a<tZero2){
            a+=24*60*60
            arrStamps.push(a)
        }
    }
    return arrStamps
}
//输出数组相同元素个数
export function getCount(arr,rank,ranktype){
    var obj = {}, k, arr1 = [];
    for (var i = 0, len = arr.length; i < len; i++) {
        k = arr[i];
        if (obj[k]) 
            obj[k]++;
        else 
            obj[k] = 1;
    }
    //保存结果{el-'元素',count-出现次数}
    for (var o in obj) {
        arr1.push({el: o, count: obj[o]});
    }
    //排序(降序)
    arr1.sort(function (n1, n2) {
        return n2.count - n1.count
    });
    //如果ranktype为1,则为升序,反转数组
    if(ranktype===1){
        arr1=arr1.reverse();
    }
    var rank1 = rank || arr1.length;
    return arr1.slice(0,rank1);
}

一个随时更新的js库的更多相关文章

  1. SharePoint 更新文档库文档标题(Title)字段

    前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要 ...

  2. 创建自己的共用js库

    直至昨晚为止,学习了一个多月的MVC与jQuery,从所做的练习中,发觉jQuery的代码也有跟C#语言一样可以重构,多页面有相同使用的方法函数,均可以放置于一个单独立的js文件或是自定义的js库中. ...

  3. 主流JS库一览

    主流JS库一览 标签: prototypedojomootoolsprototypejsjqueryjavascript 2009-10-14 22:52 19936人阅读 评论(2) 收藏 举报   ...

  4. 当新手使用JS库遇到问题怎么办

    见标题,知其意.在做网站时候,其实我们会用很多JS库,网络上流行的和公司自己封装的,这些东西都很好用,但是或多或少的有些bug或者有一些缺陷,即使真的很完善,但也可能达不到自己特定的一些需求.所以遇到 ...

  5. typescript+webpack构建一个js库

    依赖说明 入口文件 tsconfig配置 webpack配置文件 webpack入口文件配置 webpack为typescript和less文件配置各自的loader webpack的output配置 ...

  6. 【转载】写一个js库需要怎样的知识储备和技术程度?

    作者:小爝链接:https://www.zhihu.com/question/30274750/answer/118846177来源:知乎著作权归作者所有,转载请联系作者获得授权. 1,如何编写健壮的 ...

  7. 仿照jquery封装一个自己的js库(二)

    本篇为完结篇.主要讲述如何造出轮子的高级特性. 一. css方法的高级操作 先看本文第一部分所讲的dQuery css方法 //css方法 dQuery.prototype.css=function( ...

  8. 仿照jquery封装一个自己的js库(一)

    所谓造轮子的好处就是复习知识点,加深对原版jquery的理解. 本文系笔者学习jquery的笔记,记述一个名为"dQuery"的初级版和缩水版jquery库的实现.主要涉及知识点包 ...

  9. Numeral.js 是一个用于格式化和数字四则运算的js 库

    1.Numeral.js 是一个用于格式化和数字四则运算的js 库. 2.支持多种语言,包含中文在内的17种语言. 在浏览器中引用js文件: <script src="numeral. ...

  10. 学习OpenSeadragon之一(一个显示多层图片的开源JS库)

    OpenSeadragon是一个可以显示多层图片(可放大缩小)的Web库,基于JavaScript,支持桌面和手机. 由于我项目需要,却没有找到任何中文教程,因此在官网上一边学习,一边总结于此. 官网 ...

随机推荐

  1. KingbaseES V8R6 等待事件之CLogControlLock

    前言 Kingbase数据库的tuple行头部来标识这条记录的事务结束状态(未知.已提交.已回滚),在事务提交时如果并发更新100万行记录,需要对多个page的tuple进行更改,这种繁重的操作会对数 ...

  2. 哈希表(HashTable)

    哈希表 哈希表:也叫做散列表.是根据关键字和值(Key-Value)直接进行访问的数据结构.也就是说,它通过关键字 key 和一个映射函数 Hash(key) 计算出对应的值 value,然后把键值对 ...

  3. 高抗干扰抗噪,段码LCD液晶低功耗驱动IC-VK2C23B,兼容市面上16C23

    VK2C23是一个点阵式存储映射的LCD驱动器,可支持最大224点(56SEGx4COM)或者最大416点(52SEGx8COM)的LCD屏. 单片机可通过I2C接口配置显示参数和读写显示数据,也可通 ...

  4. #分块,可撤销并查集#洛谷 5443 [APIO2019]桥梁

    题目 分析 最直接的做法就是在线一边修改边权,询问直接全部重排, 然后用可撤销并查集维护连通块大小,这样时间复杂度为 \(O(qm)\) 同样尽量让大部分的边不需要修改边权,那么每 \(B\) 个操作 ...

  5. OpenHarmony持久化存储UI状态:PersistentStorage

      前两个小节介绍的LocalStorage和AppStorage都是运行时的内存,但是在应用退出再次启动后,依然能保存选定的结果,是应用开发中十分常见的现象,这就需要用到PersistentStor ...

  6. 深入理解 Spring IoC 和 DI:掌握控制反转和依赖注入的精髓

    在本文中,我们将介绍 IoC(控制反转)和 DI(依赖注入)的概念,以及如何在 Spring 框架中实现它们. 什么是控制反转? 控制反转是软件工程中的一个原则,它将对象或程序的某些部分的控制权转移给 ...

  7. django项目部署到centos

    服务器是使用的阿里云的centos 7.6 项目使用的是 Python3.9.5 + Django 3.2.4 目标:将django项目部署到centos上,centos + Python + dja ...

  8. 深入理解DES算法:原理、实现与应用

    title: 深入理解DES算法:原理.实现与应用 date: 2024/4/14 21:30:21 updated: 2024/4/14 21:30:21 tags: DES加密 对称加密 分组密码 ...

  9. JDK 19新特性 & JDK 多版本安装切换配置

    新的JDK 19包含如下7个新的特性: 转自:JDK19中比较重要的新特性-电子发烧友网 JEP 405: Record Patterns(Record模式) JEP 422: Linux/RISC- ...

  10. javascript现代编程系列教程之二——IIFE

    IIFE(Immediately Invoked Function Expression,立即执行函数表达式)是一个在定义后立即执行的JavaScript函数.它具有以下特点: 是一个匿名函数:通常情 ...