Skip to content
本文内容

Date 日期工具

工具使用说明

以下工具方法中仅dateGetAddByDay的入参为any,其他非法都需要Date对象才行。

传入时请判断是否时Date对象,你可以使用类似lodash库的isDate方法。

是否是有效Date

js
import { dateGetAddByDay } from 'rubbish-tool'

dateIsValid(new Date())

测试列表:

入参输出
new Date()true
'string'false
new Date('无效时间')false

是否是周末

js
import { dateIsWeekend } from 'rubbish-tool'

dateIsWeekend(new Date())

测试列表:

入参输出说明
new Date(2023, 2, 6)false周一
new Date(2023, 2, 7)false周二
new Date(2023, 2, 8)false周三
new Date(2023, 2, 9)false周四
new Date(2023, 2, 10)false周五
new Date(2023, 2, 11)false周六
new Date(2023, 2, 12)false周日

加减天数

添加天数,如果减就加负数

js
import { dateGetAddByDay } from 'rubbish-tool'

dateGetAddByDay(new Date('2023-01-30T00:00:00.000Z'), 1)

测试列表:

入参1入参2输出说明
new Date('2023-01-30T00:00:00.000Z')1new Date('2023-01-31T00:00:00.000Z')+1天
new Date('2023-01-30T00:00:00.000Z')2new Date('2023-02-01T00:00:00.000Z')+2天
new Date('2023-01-30T00:00:00.000Z')-1new Date('2023-01-29T00:00:00.000Z')-1天
new Date('2023-01-30T00:00:00.000Z')-2new Date('2023-01-28T00:00:00.000Z')-2天
new Date('2023-01-30T16:00:00.000Z')7new Date('2023-02-06T16:00:00.000Z')跨月

加减月数

添加月数,如果减就加负数(结果总是月份的第一天)

js
import { dateGetAddByMonth } from 'rubbish-tool'

dateGetAddByMonth(new Date('2023-01-28T00:00:00.000Z'), 1)

测试列表:

入参1入参2输出说明
new Date('2023-01-28T00:00:00.000Z')1new Date('2023-02-01T00:00:00.000Z')+1月
new Date('2023-01-31T00:00:00.000Z')2new Date('2023-03-01T00:00:00.000Z')+2月
new Date('2023-01-30T00:00:00.000Z')-1new Date('2022-12-01T00:00:00.000Z')-1月
new Date('2023-01-30T00:00:00.000Z')-2new Date('2022-11-01T00:00:00.000Z')-2月
new Date('2023-01-31T00:00:00.000Z')1new Date('2023-02-01T00:00:00.000Z')+1月 日期超出

加减年数

添加年数,如果减就加负数(月份可能会变动)

js
import { dateGetAddByYear } from 'rubbish-tool'

dateGetAddByYear(new Date('2023-01-28T00:00:00.000Z'), 1)

测试列表:

入参1入参2输出说明
new Date('2023-01-28T00:00:00.000Z')1new Date('2024-01-28T00:00:00.000Z')+1年
new Date('2023-01-31T00:00:00.000Z')2new Date('2025-01-31T00:00:00.000Z')+2年
new Date('2023-01-30T00:00:00.000Z')-1new Date('2022-01-30T00:00:00.000Z')-1年
new Date('2023-01-30T00:00:00.000Z')-2new Date('2021-01-30T00:00:00.000Z')-2年
new Date('2020-02-29T00:00:00.000Z')1new Date('2021-02-29T00:00:00.000Z')+1年 日期超出

是否是上半年

1-6月份为上半年

js
import { dateIsFstHalfYearMonth } from 'rubbish-tool'

dateIsFstHalfYearMonth(new Date('2023-01-01T00:00:00.000Z'))

测试列表:

入参输出说明
new Date('2023-01-01T00:00:00.000Z')true一月
new Date('2023-02-01T00:00:00.000Z')true二月
new Date('2023-03-01T00:00:00.000Z')true三月
new Date('2023-04-01T00:00:00.000Z')true四月
new Date('2023-05-01T00:00:00.000Z')true五月
new Date('2023-06-01T00:00:00.000Z')true六月
new Date('2023-07-01T00:00:00.000Z')false七月
new Date('2023-08-01T00:00:00.000Z')false八月
new Date('2023-09-01T00:00:00.000Z')false九月
new Date('2023-10-01T00:00:00.000Z')false十月
new Date('2023-11-01T00:00:00.000Z')false十一月
new Date('2023-12-01T00:00:00.000Z')false十二月
new Date('无效时间')false无效Date

获取周数

获取时间的周数(年初的部分天数会补齐上年最后一周)

js
import { dateGetWeekNumber } from 'rubbish-tool'

dateGetWeekNumber(new Date('2023-01-01T00:00:00.000Z'))

测试列表:

入参输出说明
new Date('2022-12-31T00:00:00.000Z')52最后一周
new Date('2023-01-01T00:00:00.000Z')52年前补齐上一年周数
new Date('2023-01-02T00:00:00.000Z')1第一周
new Date('2023-01-09T00:00:00.000Z')2第二周

按天向下取整

js
import { dateGetFloorDateByDay } from 'rubbish-tool'

dateGetFloorDateByDay(new Date('2023-01-01T00:00:00.000Z'))

测试列表:

入参输出
new Date('2023-02-02T15:15:15.000Z')new Date('2023-02-02T00:00:00.000Z')
new Date('2023-02-02T23:59:59.000Z')new Date('2023-02-02T00:00:00.000Z')
new Date('2023-02-02T00:00:00.000Z')new Date('2023-02-02T00:00:00.000Z')

按周向下取整

取整到周一

js
import { dateGetFloorDateByWeek } from 'rubbish-tool'

dateGetFloorDateByWeek(new Date('2023-01-01T00:00:00.000Z'))

测试列表:

入参输出
new Date('2023-02-02T15:15:15.000Z')new Date('2023-01-30T00:00:00.000Z')

格式化

格式化对应形式字符串。

js
import { dataGetStrFn, dateGetStr1 } from 'rubbish-tool'

dataGetStrFn(new Date(false), dateGetStr1, "??") // "??"
dataGetStrFn(new Date(false), dateGetStr1) // "--"
dataGetStrFn(new Date('2023-01-01T00:00:00.000Z'), dateGetStr1) // 2023年01月
dateGetStr1(new Date('2023-01-01T00:00:00.000Z')) // 2023年01月

格式化表格:

方法格式
dataGetStrFn根据传入的函数格式化
dateGetStr1YYYY年MM月
dateGetStr2YYYY年
dateGetStr3MM月
dateGetStr4YYYY-第Q季
dateGetStr5YYYY年MM月DD日
dateGetStr6YYYY年MM月DD日 HH:mm:ss
dateGetStr7YY-MM
dateGetStr8第Q季
dateGetStr9YYYY/MM/DD
dateGetStr10YYYY-MM-DD

测试列表:

入参输出说明
dateGetStr1(new Date(1675304008334))2023年02月YYYY年MM月
dateGetStr2(new Date(1675304008334))2023年YYYY年
dateGetStr3(new Date(1675304008334))02月MM月
dateGetStr4(new Date(1675304008334))2023年-第1季YYYY-第Q季
dateGetStr5(new Date(1675304008334))2023年02月02日YYYY年MM月DD日
dateGetStr6(new Date(1675304008334))2023年02月02日 10:13:28YYYY年MM月DD日 HH:mm:ss
dateGetStr7(new Date(1675304008334))23-02YY-MM
dateGetStr8(new Date(1675304008334))第1季第Q季
dateGetStr9(new Date(1675304008334))2023/02/02YYYY/MM/DD
dateGetStr10(new Date(1675304008334))2023-02-02YYYY-MM-DD

Released under the MIT License.