js-hodgepodge

**使用npm命令安装**

Usage no npm install needed!

<script type="module">
  import jsHodgepodge from 'https://cdn.skypack.dev/js-hodgepodge';
</script>

README

js-hodgepodge 一个全面的JS工具库

安装

使用npm命令安装

npm i js-hodgepodge -S

全局引入 import * as hodgepodge from 'js-hodgepodge'

具体调用

console.log(hodgepodge.time) // 查看time模块上所有API
console.log(hodgepodge.tools) // 查看tools上所有API
console.log(hodgepodge.cache) // 查看cache上所有API
console.log(hodgepodge.check) // 查看check上所有API

目前只上线了四大板块,后续会维护更新

按需引入

Time模块

这是一个包含大部分开发需要用到的时间模块,包括时间格式,引入如下:

import { time } from 'js-hodgepodge'

API介绍

getHoroscope()

计算星座,传入时间戳返回对应的星座

param required type describe
date true Number 时间戳

示例:

let textData: number = new Date().getTime()
console.log(time.getHoroscope(textData)) // 双子座

timeDifference()

计算时间差,传入时间配置对象

param required type describe
isTimestamp true boolean 是否传时间戳(true/false)
startTime true number / string 时间戳或者是时间格式
type false string 返回类型(day、hours、minutes、seconds、HoursMinutes、HoursMinutesSeconds、timeHours、timeHoursMinutes)
endTime false number / string 不传的话默认当前时间

示例:

console.log('时间差' + time.timeDifference({
isTimestamp: false,
type: 'day',
startTime: '2020/6/25 13:26:40',
endTime: '2020/5/25 13:26:40'
})) // 时间差31天

getChatTime()

计算相差X秒内的信息会不会显示时间,用于显示聊天消息时间居多,传入时间配置对象

param required type describe
oTime true number 起始时间,传时间戳
nTime true number 结束时间,时间戳
differ true number 开始,结束时间相差间隔

示例:

console.log(time.getChatTime({
oTime: 1587360400,
nTime: 1589963293,
differ: 300
})) // 2020-05-20 下午 4:28

getTime()

传入一个时间,与当前时间进行比较,比如当天下午6点40分,则显示下午6:40,用于显示显示发布时间、聊天时间居多,传入时间戳

param required type describe
data true number 传入时间戳
isDisplay false boolean 是否显示完整时间,不传默认为false

示例:

console.log(time.getTime(1587360400)) // 2020-04-20 下午 1:26
console.log(time.getTime(new Date().getTime())) // 下午 6:40
console.log(time.getTime(new Date().getTime(), true)) // 2020-06-03 上午 10:41

dateFormat()

格式化时间,可自定义格式,传入一个配置对象

param required type describe
time true number 需要转换格式的时间戳
formatStr false string 自定义时间格式,不传则显示默认格式:{Y}-{MM}-{DD} {A} {t}:{ii}

转换格式表

param describe
Y
M 不补0的月
MM 补0的月
Mon 大写月
D 不补0的日
DD 补0的日
h 不补0的小时
hh 补0的小时
A 显示上午下午
i 补0的分钟
ii 不补0的分钟
s 补0的秒钟
ss 不补0的秒钟

示例: 可以自定义格式: 如 {t}:{ii}

console.log('当前时间格式化' + time.dateFormat({
time: new Date().getTime(),
formatStr: '{t}:{ii}'
})) // 当前时间格式化9:45
// 不传
console.log('当前时间格式化' + time.dateFormat({
time: new Date().getTime()
})) // 当前时间格式化2020-06-03 上午 9:46

getLastDayOfMonth()

获取本月的最后一天

示例: 可以自定义格式: 如 {t}:{ii}

console.log('month' + time.getLastDayOfMonth()) // month30

getFirstDayOfSeason()

获取这个季度的第一天

示例:

console.log('季度第一天' + time.getFirstDayOfSeason()) // 季度第一天2020-04-01

getWeek()

获取当天是周几

示例:

console.log('周' + time.getWeek()) // 周三

getYearDay()

获取今天是当年的第几天

示例:

console.log('今天是今年的第' + time.getYearDay() + '天') // 今天是今年的第155天

getYearWeek()

获取今天是当年的第几周

示例:

console.log('今天是今年的第' + time.getYearWeek() + '周') // 今天是今年的第23周

lastDay()

获取今年还剩下多少时间

示例:

console.log('今年还剩下'+ time.lastDay() +'天' ) // 今年还剩下211天

getDate()

获取N天后的日期

param required type describe
time true number / Date 起始时间,可以为时间戳,可以为new出来的时间格式
count true number 几天后的区间,可为负数

示例:

console.log('获取N天后的日期' + time.getDate(new Date(), 7)) // 获取N天后的日期2020-06-10 10:16:51
console.log('获取N天后的日期' + time.getDate(new Date().getTime(), 7)) // 获取N天后的日期2020-06-10 10:16:51

getWeekCycle()

计算当周开始和结束时间

param required type describe
formatStr false string 不传默认格式{Y}-{MM}-{DD}

示例:

console.log(time.getWeekCycle('{Y}-{MM}-{DD} {A} {t}:{ii}:{ss}')) // {firstDay: "2020-05-31 上午 10:19:35", lastDay: "2020-06-06 上午 10:19:35"}
// 不传
console.log(time.getWeekCycle()) // {firstDay: "2020-05-31", lastDay: "2020-06-06"}

isExist()

判断某段时间是否存在

注:只能统一同一种类型,如number类型所有参数必须是number类型,结束时间必须比其实时间晚

param required type describe
beginTime true number / string 起始时间,可以为时间戳,时间字符格式,可传可不传,不传默认当天
lastTime true number / string 结束时间
time true number / string 需要判断的时间点

示例:

// string类型
console.log('是否是'+ time.getTime(new Date().getTime(), true) +'区间' + time.isExist({
lastTime: '2020-07-01 15:36:47',
time: '2020-06-01 15:36:47'
})) // 是否是2020-06-03 上午 10:38区间false

// number类型
console.log('是否是'+ new Date().getDay +'区间' + time.isExist({
lastTime: 1587360400,
time: 1589963293
})) // 是否是2020-06-03 上午 10:56区间true

未完待续。。。。。。。