日期工具类 - IkDate
内置dayjs库
不用单独install dayjs依赖,用法与dayjs api完全一致,直接使用即可
import { dayjs } from 'iking-utils';
- 查看详细文档
使用IkDate
常用于用于格式化日期,获取关于日期的一些数据等
导入方式
import { ikDate } from 'iking-utils'
时间格式化 - toDateTime
将时间默认转换成 YYYY-MM-DD HH:mm:ss
格式
type TDate = string | Date | undefined
const DATE_TIME_FORMAT = 'YYYY-MM-DD HH:mm:ss';
toDateTime(date: TDate = undefined, format = DATE_TIME_FORMAT,)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toDateTime(new Date())
<!-- console.log(date) -->
2023-08-23 15:05:42
格式化成日期 - toDate
将日期默认转换成 YYYY-MM-DD
格式
type TDate = string | Date | undefined
const DATE_FORMAT = 'YYYY-MM-DD';
toDate(date: TDate = undefined, format = DATE_FORMAT,)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toDate(new Date())
<!-- console.log(date) -->
2023-08-23
格式化为年份 - toY
将日期默认转换成 YYYY
格式
type TDate = string | Date | undefined
toY(date: TDate = undefined, format = 'YYYY',)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toY(new Date())
<!-- console.log(date) -->
2023
日期格式化为年月 - toYM
将日期默认转换成 YYYY-MM
格式
type TDate = string | Date | undefined
toY(date: TDate = undefined, format = 'YYYY-MM',)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toYM(new Date())
<!-- console.log(date) -->
2023-08
日期格式化为月日 - toMD
将日期默认转换成 MM-DD
格式
type TDate = string | Date | undefined
toY(date: TDate = undefined, format = 'MM-DD',)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toMD(new Date())
<!-- console.log(date) -->
08-23
日期格式化为年月日 - toYMD
将日期默认转换成 YYYY-MM-DD
格式
type TDate = string | Date | undefined
toY(date: TDate = undefined, format = 'YYYY-MM-DD',)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toYMD(new Date())
<!-- console.log(date) -->
2023-08-23
日期格式化为年月日时分 - toYMDHM
将日期默认转换成 YYYY-MM-DD HH:mm
格式
type TDate = string | Date | undefined
toY(date: TDate = undefined, format = 'YYYY-MM-DD HH:mm',)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | TDate | 日期 |
format | string | 格式 |
示例
const date = ikDate.toYMDHM(new Date())
<!-- console.log(date) -->
2023-08-23 15:05
获取星期几 - formatWeek
formatWeek(date: IkDate, isArr = true)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | IkDate | 日期 |
isArr | Boolean | 是否返回的为数组,默认为true |
示例
ikDate.formatWeek(new Date())
<!-- console.log(ikDate.formatWeek(new Date())) -->
['三', '星期三', '周三', '3']
ikDate.formatWeek(new Date())
<!-- console.log(ikDate.formatWeek(new Date(), false)) -->
三
获取某一周数据 - getWeek
getWeek(date: IkDate)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | IkDate | 日期 |
示例
ikDate.getWeek(new Date())
<!-- console.log(ikDate.getWeek(new Date())) -->
[
{
date: "2023-08-21",
datemon: "08-21",
week: "一",
week1: "星期一",
week2: "周一",
week3: 1,
},
{
date: "2023-08-22",
datemon: "08-22",
week: "二",
week1: "星期二",
week2: "周二",
week3: 2,
},
{
date: "2023-08-23",
datemon: "08-23",
week: "三",
week1: "星期三",
week2: "周三",
week3: 3,
},
{
date: "2023-08-24",
datemon: "08-24",
week: "四",
week1: "星期四",
week2: "周四",
week3: 4,
},
{
date: "2023-08-25",
datemon: "08-25",
week: "五",
week1: "星期五",
week2: "周五",
week3: 5,
},
{
date: "2023-08-26",
datemon: "08-26",
week: "六",
week1: "星期六",
week2: "周六",
week3: 6,
},
{
date: "2023-08-27",
datemon: "08-27",
week: "日",
week1: "星期日",
week2: "周日",
week3: 0,
},
]
获取某一月数据 - getMonth
getMonth(date: IkDate)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | IkDate | 日期 |
示例
ikDate.getMonth(new Date())
获取某一月数据 + 补全 - getMonthComple
getMonthComple(date: IkDate) 获取日历上某月的数据(补全的是月份首尾其他日期的数据)
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
date | IkDate | 日期 |
示例
ikDate.getMonthComple(new Date())
获取某年某月有多少天 - getMonthDay
getMonthDay(year: number, month: number)
获取某年某月有多少天
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
year | Number | 年份 |
month | Number | 月份 |
示例
ikDate.getMonthDay(2023, 8)
计算两个日期之间相隔多少天 - daysBetweenDates
daysBetweenDates(dateA: IkDate, dateB: IkDate)
获取某年某月有多少天
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
dateA | IkDate | 日期 |
dateB | IkDate | 日期 |
示例
ikDate.daysBetweenDates(new Date(), '2023-8-11')
<!-- console.log(ikDate.daysBetweenDates(new Date(), '2023-8-11')) -->
12
convertDate 农历阳历互转
convertDate.lunarInfo
- 农历1900-2100的润大小信息表
示例
ikDate.convertDate.lunarInfo
convertDate.solarMonth
- 公历每个月份的天数普通表
示例
ikDate.convertDate.solarMonth
convertDate.Gan
- 天干地支之天干速查表
示例
ikDate.convertDate.Gan
convertDate.Zhi
- 天干地支之地支速查表
示例
ikDate.convertDate.Zhi
convertDate.Animals
- 天干地支之地支速查表<=>生肖
示例
ikDate.convertDate.Animals
convertDate.solarTerm
- 24节气速查表
示例
ikDate.convertDate.solarTerm
convertDate.sTermInfo
- 1900-2100各年的24节气日期速查表
示例
ikDate.convertDate.sTermInfo
convertDate.nStr1
- 数字转中文速查表
示例
TIP
['日','一','二','三','四','五','六','七','八','九','十']
ikDate.convertDate.nStr1
convertDate.nStr2
- 日期转农历称呼速查表
示例
TIP
['初','十','廿','卅']
ikDate.convertDate.nStr2
convertDate.nStr3
- 月份转农历称呼速查表
示例
TIP
['正','二','三','四','五','六','七','八','九','十','冬','腊']
ikDate.convertDate.nStr3
convertDate.lunarFestival
- 农历节日
示例
ikDate.convertDate.lunarFestival
convertDate.solarFestival
- 阳历节日
示例
ikDate.convertDate.solarFestival
convertDate.lYearDays(y: Number)
- 返回农历y年一整年的总天数
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份值 |
示例
ikDate.convertDate.lYearDays(2023)
convertDate.leapMonth(y: Number)
返回农历y年闰月是哪个月;若y年没有闰月 则返回0
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份值 |
示例
ikDate.convertDate.leapMonth(2023)
convertDate.leapDays(y: Number)
返回农历y年闰月的天数 若该年没有闰月则返回0
示例
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份值 |
ikDate.convertDate.leapDays(2023)
convertDate.monthDays(y: Number, m: Number)
返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份值 |
m | Number | 月份值 |
示例
ikDate.convertDate.monthDays(2023, 3)
convertDate.solarDays(y: Number, m: Number)
返回公历(!)y年m月的天数
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份值 |
m | Number | 月份值 |
示例
ikDate.convertDate.solarDays(2023, 3)
convertDate.toGanZhiYear(lYear: number)
农历年份转换为干支纪年
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
lYear | Number | 年份值 |
示例
ikDate.convertDate.toGanZhiYear(2023)
convertDate.toAstro(cMonth: number, cDay: number)
公历月、日判断所属星座
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
cMonth | Number | 月份值 |
cDay | Number | 日 |
示例
ikDate.convertDate.toAstro(8,9)
convertDate.toGanZhi(offset: number)
传入offset偏移量返回干支
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
offset | Number | 相对甲子的偏移量 |
示例
ikDate.convertDate.toGanZhi(8)
convertDate.getTerm(y: number, n: number)
传入公历(!)y年获得该年第n个节气的公历日期
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 公历年(1900-2100) |
n | Number | 二十四节气中的第几个节气(1~24);从n=1(小寒)算起 |
示例
ikDate.convertDate.getTerm(2023, 8)
convertDate.toChinaMonth(m: number)
传入农历数字月份返回汉语通俗表示法
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
m | Number | 月份 |
示例
ikDate.convertDate.toChinaMonth(8)
convertDate.toChinaDay(d: number)
传入农历日期数字返回汉字表示法
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
m | Number | 月份 |
示例
ikDate.convertDate.toChinaDay(8)
<!-- conosle.log(ikDate.convertDate.toChinaDay(8)) -->
初八
convertDate.getAnimal(y: number)
年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春”
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份 |
示例
ikDate.convertDate.getAnimal(2023)
<!-- conosle.log(ikDate.convertDate.getAnimal(2023)) -->
兔
convertDate.getFestival(month: string | number, day: number | string, y: number, m?: number)
根据公历日期获取是什么节日
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
month | Number | String | 月 |
day | Number | String | 日 |
y | Number | (暂时未用到该参数) |
m | Number | (暂时未用到该参数) |
示例
ikDate.convertDate.getFestival(8, 1, 0, 0)
<!-- conosle.log(ikDate.convertDate.getFestival(8, 1, 0, 0)) -->
{month: 8, day: 1, name: '建军节'}
convertDate.solar2lunar(y: number, m: number, d: number)
传入阳历年月日获得详细的公历、农历object信息 <=>JSON
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份 |
m | Number | 月份 |
d | Number | 日 |
示例
ikDate.convertDate.solar2lunar(2023, 8, 23)
<!-- conosle.log(ikDate.convertDate.solar2lunar(2023, 8, 23)) -->
{
Animal: "兔",
IDayCn: "初八",
IMonthCn: "七月",
Term: "处暑",
astro: "处女座",
cDay: 23,
cMonth: 8,
cYear: 2023,
fest: undefined,
festcn: undefined,
gzDay: "癸丑",
gzMonth: "庚申",
gzYear: "癸卯",
isLeap: false,
isTerm: true,
isToday: true,
lDay: 8,
lMonth: 7,
lYear: 2023,
nWeek: 3,
ncWeek: "星期三",
}
convertDate.lunar2solar(y: number, m: number, d: number, isLeapMonth: boolean = true)
传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON
参数说明
参数值 | 类型 | 参数值说明 |
---|---|---|
y | Number | 年份 |
m | Number | 月份 |
d | Number | 日 |
isLeapMonth | Boolean | 如果是农历闰月第四个参数赋值true即可 |
示例
ikDate.convertDate.lunar2solar(2023, 8, 23, true)
<!-- conosle.log(ikDate.convertDate.lunar2solar(2023, 8, 233, false))) -->
{
Animal: "兔",
IDayCn: "廿三",
IMonthCn: "八月",
Term: null,
astro: "天秤座",
cDay: 7,
cMonth: 10,
cYear: 2023,
fest: undefined,
festcn: undefined,
gzDay: "戊戌",
gzMonth: "辛酉",
gzYear: "癸卯",
isLeap: false,
isTerm: false,
isToday: false,
lDay: 23,
lMonth: 8,
lYear: 2023,
nWeek: 6,
ncWeek: "星期六",
}