1.0.4 • Published 8 months ago

hsw-tools v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
8 months ago

工具包

介绍

汇总可能会用到的辅助函数之类 类似:lodash

简单使用

/* 
导出timejs单独模块
import {timejs} from 'hsw-tools'; 

导出默认,所有方法都会在defaultName中
import defaultName from 'hsw-tools';
*/ 

// 例如:调用timejs模块的backStartToEndDayPlus方法计算起止日期范围内天数和
import {timejs} from 'hsw-tools'; 
timejs.backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585

// 例如:一些判断当前宿主浏览器环境的, 假设判断当前是否处于微信内置浏览器内,可以使用:isWxInBrowser 方法进行判断
import hswTools from 'hsw-tools'
console.log(hswTools.browser.isWxInBrowser()) //true | false

//像一些用到的实用库 也会默认导出的 例如:dayjs | lodash 目前也仅仅导出这两个库  

导出模块

timejs

方法介绍参数返回值
dayjsDay.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间。详见nullnull
backStartToEndDay计算给定时间内的天数;==注:该函数无法跨年计算==详见示例Number
backStartToEndDayPlusbackStartToEndDay的升级版,功能一样,==增加跨年计算== 仅计算当前年度的话需要将第三个参数传入true,默认为false,跨年可忽略详见示例Number
backTimeAreaDay获取给定时间范围内的每一天的信息详见示例Array
backWeek根据年返回周 并且返回每周的起点-终点详见示例Array
backNowWeek返回给定时间所在年的第几周详见示例ArrayNumber
backNowQuarter返回给定时间所在年的第几周详见示例StringNumber
import {timejs} from 'hsw-tools';
const {backStartToEndDay} = timejs
/**
 *
 * @param sTime 开始时间
 * @param endTime 结束时间 
 * @param toDay 是否将当天也计算在内
 * @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
 */
 //当时间 2023-08-28
 backStartToEndDay() // 239 
 backStartToEndDay('2023-01-01','2023-12-31',true) // 365
 backStartToEndDay('2023-01-01','2023-12-31',false) // 364
import {timejs} from 'hsw-tools';
/**
 * backStartToEndDay升级版本 增加夸年,其他特性和用法一致
 * @param sTime 开始时间
 * @param endTime 结束时间 
 * @param toDay 是否将当天也计算在内
 * @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
 * 注意:如果是计算一整年的,且是本年度的切记需要设置today = true ,不然31号是不会计算进去的,跨年计算可忽略
 */
 const {backStartToEndDayPlus} = timejs
 backStartToEndDayPlus('2023-01-01','2052-12-31') // 364 
 backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585
 import {timejs} from 'hsw-tools';
 const {backTimeAreaDay} = timejs
/**
 *  返回给定时间段内的时间信息包括起始和结束时间 (时间戳对比的时候需要注意当前数据时间戳是该日期8点算起的,数据日补零需要)
 * @param s 起始时间
 * @param e 结束时间
 * @returns array
 */

  /*
    [
        {
            formatTime: "2023-01-01"
            time: 1672531200000
        },
        {
            formatTime: "2023-01-02"
            time: 1672617600000 
        }
    ]
  */
 backTimeAreaDay('2023-01-01','2023-01-02')
 import {timejs} from 'hsw-tools';
 const {backWeek} = timejs
 /**
 * 根据年返回周 并且返回每周的起点-终点
 * @param year 
 * @param format 日期格式化 仅限年月日 例如:YYYY-M-D | YYYY-MM-MM | MM/YYYY/DD | YYYY年MM月DD日
 */
 backWeek('2023')
 /*
    id:2, 
    label:'第2周', //处于年中第几周
    oneDayList:[
        {formatTime: '2022-01-03', time: 164116800000 }
        ....
        {formatTime: '2022-01-09', time: 1641686400000}
    ],
    value:['2022-01-03', '2022-01-09'] //周起止点
 */
 import {timejs} from 'hsw-tools';
 const {backNowWeek} = timejs
 /**
 * 返回给定时间所在年的第几周
 * @param date 时间
 * @param backType 返回数据类型 1返回周的下标 2返回当前日期的一周数据
 */
 backNowWeek('2023-08-28','1') // 36

 backNowWeek('2023-08-28','2')
 /*
    [
        {formatTime: '2023-08-28', time: 1693180800000}
        ....
        {formatTime: '2023-09-03', time: 1693699200000}
    ]
  */
 import {timejs} from 'hsw-tools';
 const {backNowWeek} = timejs
 /**
 * 返回给定时间所在季度
 * @param date 时间
 * @param toChineseNumerals 是否转为中文大写数字
 * @returns String | Number
 */

 backNowQuarter('2023-08-28') // 3
 backNowQuarter('2023-08-28',true) //三

arrayjs

方法介绍参数返回值
treeFlat树结构数组打平为一维数组详见示例Array
filterSame数组对象去重详见示例Array
 import {arrayjs} from 'hsw-tools'
 const {treeFlat} = arrayjs
/**
 * @param arr 需要打平的树结构数组
 * @param field 需要拆解的字段
 * @param parentName 能都代表父元素的字段(会被注入到新的打平的子元素中去)
 * @returns []
 */
const origin = [
    {
        children:[
            {
                name:'张小三',
                age:40,
                children:[
                    {
                      name:'张小小三',
                      age:18,
                    }
                ]
            }
        ],
        name:'张三',
        age:70
    }
]
 treeFlat(orignData,'children') // [{name:'张三',age:70},{name:'张小三',age:40}....]
import {arrayjs} from 'hsw-tools'
 const {filterSame} = arrayjs
/**
 * 数组对象去重 (并不是全等去重,而是对比某字段)
 * @param filterField  作为筛选条件的key
 * @param arr 被筛选的数组
 * @returns array
 */
 const origin = [
    {
        age:40,
        name:'张三'
    },
    {
        age:70,
        name:'李四'
    },
    {
         age:40,
        name:'张三'
    }
 ]
 filterSame('age',origin) //[{age:70,name:'李四'},{age:40,name:'张三'}]

lodash

详见官方文档

mapBaidu (基于已申请key并正确引入项目-百度地图文档

方法介绍参数返回值
getLocation定位服务,基于百度地图nullObject
 import {mapBaidu} from 'hsw-tools'
 const {getLocation} = mapBaidu
 //需要授权 分为浏览器定位和IP定位 默认浏览器定位-失败(成功直接返回结果)-启用ip定位-成功/失败-返回结果
 getLocation()

/*
    lng: 117.5, //经度
    lat: 27.5, // 维度
    origin: {}, //源数据 地址信息可从源数据中获取
    locationOrigin: 'IP' //定位数据来源 IP / LOCATION
 */

mapGaode (基于已申请key并正确引入项目-高德地图文档

期待后续~

browser

方法介绍参数返回值
porm判断设备当前客户端 PC/MobilenullMobile / PC
aori判断用户当前设备是Android还是IOSnullAndroid / IOS
browserKernel判断浏览器内核名称nullMozillaFirefox / Opera / MicrosoftInternetExplorer / MicrosoftEdge / GoogleChromeorChromium / AppleSafari / unknown
isPad判断是否是padnullBoolen
isWxInBrowser判断当前是否是微信内置浏览器nullBoolen
isSafari判断是否为苹果的Safari浏览器nullBoolen
isIE是否是IEnullBoolen
isIE8under是否是ie8以下版本nullBoolen
1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

9 months ago

1.0.0

9 months ago