1.4.0 • Published 7 months ago

dayjs-plugin-lunar v1.4.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

Dayjs Plugin Lunar

NPM Version NPM Downloads NPM License

dayjs-plugin-lunar 是一个基于 Day.js 的扩展插件,用于方便地处理和转换农历时间。它依赖 tyme4ts 作为底层时间计算库。

安装

npm install dayjs dayjs-plugin-lunar

如果你的 npm 版本低于 7,则需要额外安装 tyme4ts:

npm install tyme4ts

快速开始

基础使用

import dayjs from "dayjs";
import { PluginLunar } from "dayjs-plugin-lunar";

// 注册插件
dayjs.extend(PluginLunar);

dayjs("2024-12-19 12:00:00").format("LMLDLhLK"); // 冬月十九午正初刻

// 转换为农历时辰
dayjs("2024-12-19 12:00:00").toLunarHour().getName(); // 午时

// 转换为农历日期
dayjs("2024-12-19 12:00:00").toLunarDay().getName(); // 十九

// 转换为农历月份
dayjs("2024-12-19 12:00:00").toLunarMonth().getName(); // 冬月

// 通过农历构造日期
dayjs.lunar(2025, 1, 1).format("YYYY-MM-DD"); // 2025-01-29

自定义配置

tyme4ts 将农历的 冬月腊月 表述为 十一月十二月dayjs-plugin-lunar 希望更遵循传统命名,对此进行了修改。若需显示 tyme4ts 的原始表述,可将 traditional 设置为 false

dayjs.extend(PluginLunar, { traditional: false });

// 转换为农历月份(使用 `tyme4ts` 原始表述)
dayjs.lunar(2024, 11, 1).toLunarMonth().getName(); // 十一月

更多用法参看测试用例

API 参考

format

基于 dayjs 原始 format 方法拓展,新增农历格式化模板

扩展的 format 模版

模板输出详情
LY甲子 乙丑 ... 癸亥干支纪年
LZ鼠 牛 ... 猪生肖
LM正月 二月 ... 腊月农历月份
LD初一 初二 ... 三十农历日期
LH子时 丑时 ... 亥时农历时辰
Lh子 丑 ... 亥农历时辰(简写)
LK初初刻 初一刻 ... 正三刻农历刻数(采用九十六刻制

示例

dayjs("2024-12-19 12:00:00").format("LYLZ年LMLDLhLK"); // 甲辰龙年冬月十九午正初刻

add / subtract

基于 dayjs 原始 add / subtract 方法拓展,新增农历单位加减

单位详情
lunar-year农历年
lunar-month农历月
lunar-day农历日
lunar-dual-hour农历时辰

示例

dayjs("2024-12-20 12:20:00")
  .add(1, "lunar-dual-hour")
  .format("YYYY-MM-DD HH:mm:ss"); // 2024-12-20 14:20:00

lunar

使用农历时间创建 Dayjs 对象

参数

  • lunarYear number 农历年
  • lunarMonth number? 农历月,1 到 12,闰月为负数
  • lunarDay number? 农历日,1 到 30
  • lunarHour number? 时,0 到 23
  • lunarMinute number? 分,0 到 59
  • lunarSecond number? 秒,0 到 59

示例

dayjs.lunar(2025, 1, 1).format('YYYY-MM-DD') // 2025-01-29

Returns Dayjs

toLunarHour

转换为农历的时辰

示例

dayjs('2024-12-19 12:00:00').toLunarHour().getName(); // 午时

Returns LunarHour tyme4ts 中的 LunarHour

toLunarDay

转换为农历的日期

示例

dayjs('2025-01-29').toLunarDay().getName(); // 初一

Returns LunarDay tyme4ts 中的 LunarDay

toLunarMonth

转换为农历的月份

示例

dayjs('2025-01-29').toLunarMonth().getName(); // 正月

Returns LunarMonth tyme4ts 中的 LunarMonth

toLunarSeason

转换为农历的季节

示例

dayjs('2025-01-29').toLunarSeason().getName(); // 孟春

Returns LunarSeason tyme4ts 中的 LunarSeason

toLunarYear

转换为农历的年份

示例

dayjs('2025-01-01').toLunarYear().getYear(); // 2024

Returns LunarYear tyme4ts 中的 LunarYear

addLunar

添加农历时间

参数

  • value number 数量
  • unit LunarUnit 单位

示例

dayjs('2024-12-20 12:00:00').addLunar(1, 'dual-hour').toLunarHour().getName(); // 未时

Returns Dayjs

subtractLunar

减去农历时间,与 addLunar 相反

参数

  • value number 数量
  • unit LunarUnit 单位

示例

dayjs('2024-12-20 12:00:00').subtractLunar(1, 'dual-hour').toLunarHour().getName(); // 巳时

Returns Dayjs

License

MIT

1.4.0

7 months ago

1.2.2

7 months ago

1.3.0

7 months ago

1.2.0

7 months ago

1.1.0

7 months ago

1.0.0

7 months ago

0.0.0

7 months ago