日期工具类 - 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')) -->
12convertDate 农历阳历互转
convertDate.lunarInfo- 农历1900-2100的润大小信息表
示例
ikDate.convertDate.lunarInfoconvertDate.solarMonth - 公历每个月份的天数普通表
示例
ikDate.convertDate.solarMonthconvertDate.Gan - 天干地支之天干速查表
示例
ikDate.convertDate.GanconvertDate.Zhi - 天干地支之地支速查表
示例
ikDate.convertDate.ZhiconvertDate.Animals - 天干地支之地支速查表<=>生肖
示例
ikDate.convertDate.AnimalsconvertDate.solarTerm - 24节气速查表
示例
ikDate.convertDate.solarTermconvertDate.sTermInfo - 1900-2100各年的24节气日期速查表
示例
ikDate.convertDate.sTermInfoconvertDate.nStr1 - 数字转中文速查表
示例
TIP
['日','一','二','三','四','五','六','七','八','九','十']
ikDate.convertDate.nStr1convertDate.nStr2 - 日期转农历称呼速查表
示例
TIP
['初','十','廿','卅']
ikDate.convertDate.nStr2convertDate.nStr3 - 月份转农历称呼速查表
示例
TIP
['正','二','三','四','五','六','七','八','九','十','冬','腊']
ikDate.convertDate.nStr3convertDate.lunarFestival - 农历节日
示例
ikDate.convertDate.lunarFestivalconvertDate.solarFestival - 阳历节日
示例
ikDate.convertDate.solarFestivalconvertDate.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: "星期六",
}