# eptools

> 一些公共函数

Latest version **1.1.1** (published 2023-10-27) · ISC license · 0 weekly downloads

## Install

```sh
npm install eptools
pnpm add eptools
yarn add eptools
bun add eptools
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.1 |
| Published | 2023-10-27 |
| First published | 2020-12-04 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 21.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | pretender |
| Maintainers | vcode |

## Links

- npm: https://www.npmjs.com/package/eptools
- npm.io page: https://npm.io/package/eptools

## Dependencies (7)

- [jest](https://npm.io/package/jest.md) ^29.7.0
- [ts-jest](https://npm.io/package/ts-jest.md) ^29.1.1
- [ts-node](https://npm.io/package/ts-node.md) ^10.9.1
- [ts-loader](https://npm.io/package/ts-loader.md) ^9.5.0
- [typescript](https://npm.io/package/typescript.md) ^5.2.2
- [@types/jest](https://npm.io/package/@types/jest.md) ^29.5.6
- [jest-environment-jsdom](https://npm.io/package/jest-environment-jsdom.md) ^29.7.0

## Recent versions

- 1.1.1 (latest) — 2023-10-27
- 1.1.0 — 2023-10-27
- 1.0.1 — 2020-12-07
- 1.0.0 — 2020-12-04

## README

### 项目介绍
    项目旨在处理时间转换、数字的加减乘数等运算的一些通用函数
### 启动命名
```
npm install eptools --save
```
### 使用说明
``` javascript
import { EPTime, EPCalculator, ArrayTool } from 'eptools';
```
> EPTime

| 函数 | 参数 | 说明 | 举例 |
| ---  | --- | --- | --- |
|outTime(v, format) | v: Date &#124; TimeStamp<br>format: 'yyyy-MM-dd HH:mm:ss' 见[时间格式](#date) | 对时间或者时间戳进行转换 |EPTime.outTime(new Date(),'yyyy/MM/dd HH:mm:ss') |
| formatTime(v, type) | v: String &#124; Date <br> type: 'strtime' &#124; 'datestr'  | 将时间数字字符串转成时间字符串，当v长度为14时且type为strtime时，输出年月日时分秒时间格式，长度为8时，输出年月日时间格式，当type为datestr时，输入yyyyMMddHH:mm:ss,否则原样输出v | EPTime.formatTime('20190203123523')<br>EPTime.formatTime('20190203')<br>EPTime.formatTime(new Date(),'datestr') | 
|EPTime.diffTime(inTime, type)|inTime:Number<br>type:String | 计算时间差，inTime 为毫秒数，type 为hour 返回毫秒数有多少小时，否则返回年月日时分秒| |
|getDayOfWeek|无| 获取本周的第一天和最后一天||
|getDayOfMonth|无|获取本月的第一天和最后一天||
|getQuartorStartDate|无|根据 年份 和 季度  获取 季度 第一天 和 季度 最后 一天||
|formatDate|value: Number|格式化月和日为MM、dd||

### <span id="date">时间格式</span>
|格式| 函数| 备注| 举例|
|--|--|--|--|
|yyyy|	年|	|	2017|
|M|	月	|不补0	|1|
|MM|	月|		|01|
|W|	周|	仅周选择器的 format 可用；|不补0	|1|
|WW|	周|	仅周选择器的 format 可用|	01|
|d|	日	|不补0|	2|
|dd|	日|	|	02|
|H|	小时	|24小时制；不补0|	3|
|HH|	小时|	24小时制|	03|
|h|	小时	|12小时制，须和 A 或 a 使用；不补0|	3|
|hh|	小时	|12小时制，须和 A 或 a 使用|	03|
|m|	分钟	|不补0|	4|
|mm|	|分钟|		04|
|s|	秒	|不补0|	5|
|ss|	秒|		05|
|A|	AM/PM|	仅 format 可用，大写|	AM|
|a|	am/pm|	仅 format 可用，小写|	am|
|timestamp|	JS时间戳	仅 value-format 可用；组件绑定值为number类型	|1483326245000|
|[MM]|	不需要格式化字符|	使用方括号标识不需要格式化的字符 (如 [A] [MM])	|MM|

> EPCalculator

| 函数 | 参数 | 说明 | 举例 |
| ---  | --- | --- | --- |
|accAdd|arg1:Number<br>arg2:Number<br>original:Boolean|加法运算：前面两个参数为被加数及加数，后面为是否原样输出还是保留两位小数|EPCalculator.accAdd(arg1,arg2,original)|
|accDel|arg1:Number<br>arg2:Number<br>original:Boolean|减法运算：前面两个参数为被减数及减数，后面为是否原样输出还是保留两位小数|EPCalculator.accDel(arg1,arg2,original)|
|accMul|arg1:Number<br>arg2:Number<br>original:Boolean|乘法运算：前面两个参数为被乘数及乘数，后面为是否原样输出还是保留两位小数|EPCalculator.accMul(arg1,arg2,original)|
|accDiv|arg1:Number<br>arg2:Number<br>original:Boolean|除法运算：前面两个参数为被除数及除数，后面为是否原样输出还是保留两位小数|EPCalculator.accDiv(arg1,arg2,original)|

> ArrayTool

| 函数 | 参数 | 说明 | 举例 |
| ---  | --- | --- | --- |
|getSectionArr|arg1:number[]|将一个无序数字数组从小到大进行分段：getSectionArr([1,7,4,8,10])， 返回[[1, 4], [4, 7], [7, 8], [8, 10]]|ArrayTool.getSectionArr(arg1)|
|arr2Tree|arg1:TreeObjectType[]<br>arg2:ArrOptionType|将具有父子关系的一维数组转成树形结构：前面两个参数为数组和父子标识(id, pid)对应的字段|ArrayTool.arr2Tree(arg1,{id: 'id', pid: 'pid'},original)|
|tree2Arr|arg1:TreeObjectType[]<br>arg2:TreeOptionType|将树形数据转为具有父子关系的一维数组，前面两个参数为树形数据和子节点标识(child)对应的字段|ArrayTool.tree2Arr(arg1,{child: 'children'},original)|
|traverse|arg1:TreeObjectType[]|将树形数据扁平化，并返回各自的所属层级ID|ArrayTool.traverse(arg1)|

---
_Source: https://npm.io/package/eptools · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
