No description
Find a file
2026-05-30 19:19:21 -04:00
.github chore: P1 polish and documentation updates 2026-05-30 18:40:33 -04:00
coverage chore: P1 polish and documentation updates 2026-05-30 18:40:33 -04:00
src chore: P1 polish and documentation updates 2026-05-30 18:40:33 -04:00
.editorconfig refactor: code quality improvements across the board 2026-03-08 11:37:55 -04:00
.gitignore refactor: code quality improvements across the board 2026-03-08 11:37:55 -04:00
.npmrc chore: clear .npmrc to remove pnpm-only key that warns on npm publish 2026-02-25 15:09:08 -05:00
.nvmrc feat: initial release of moment-hijri-plus v1.0.0 2026-02-25 14:15:18 -05:00
CHANGELOG.md chore: bump to v1.0.2 2026-05-30 19:19:21 -04:00
eslint.config.mjs chore: adopt shared config packages (tsconfig, eslint, prettier) 2026-05-30 15:11:48 -04:00
LICENSE feat: initial release of moment-hijri-plus v1.0.0 2026-02-25 14:15:18 -05:00
package.json chore: bump to v1.0.2 2026-05-30 19:19:21 -04:00
pnpm-lock.yaml docs: add TypeDoc API generation (typedoc@0.28.19 + typedoc-plugin-markdown@4.11.0) 2026-05-30 16:41:59 -04:00
pnpm-workspace.yaml feat: initial release of moment-hijri-plus v1.0.0 2026-02-25 14:15:18 -05:00
README.md chore: P1 polish and documentation updates 2026-05-30 18:40:33 -04:00
test-cjs.cjs refactor: code quality improvements across the board 2026-03-08 11:37:55 -04:00
test.mjs refactor: code quality improvements across the board 2026-03-08 11:37:55 -04:00
tsconfig.json chore: adopt shared config packages (tsconfig, eslint, prettier) 2026-05-30 15:11:48 -04:00
tsup.config.ts ci: pin pnpm to version 10 in all CI jobs 2026-03-08 16:37:44 -04:00
typedoc.json docs: add TypeDoc API generation (typedoc@0.28.19 + typedoc-plugin-markdown@4.11.0) 2026-05-30 16:41:59 -04:00

moment-hijri-plus

npm version CI License: MIT

Moment.js plugin for Hijri calendar conversion and formatting. Delegates all calendar logic to hijri-core, a zero-dependency Hijri engine with pluggable calendar support (Umm al-Qura and FCNA/ISNA).

Installation

pnpm add moment moment-hijri-plus hijri-core

Both moment and hijri-core are peer dependencies.

Quick Start

import moment from 'moment';
import installHijri from 'moment-hijri-plus';

installHijri(moment);

const m = moment(new Date(2023, 2, 23)); // 23 March 2023
m.toHijri();            // { hy: 1444, hm: 9, hd: 1 }  (1 Ramadan 1444 AH)
m.formatHijri('iD iMMMM iYYYY AH'); // '1 Ramadan 1444 AH'

moment.fromHijri(1446, 1, 1); // moment for 7 July 2024

API Summary

Call installHijri(moment) once at startup to add these methods.

Method Returns Description
toHijri(options?) HijriDate | null Convert to Hijri date object
hijriYear(options?) number | null Hijri year
hijriMonth(options?) number | null Hijri month (1-12)
hijriDay(options?) number | null Hijri day
isValidHijri(options?) boolean True if date is within calendar range
formatHijri(fmt, options?) string Format with Hijri tokens; non-Hijri tokens pass through
moment.fromHijri(hy, hm, hd, options?) Moment Construct moment from Hijri date

Pass { calendar: 'fcna' } to switch from the default Umm al-Qura calendar to FCNA/ISNA.

Full API reference, format token table, and examples are in the project wiki.

Note on Moment.js

Moment.js is in maintenance mode. For new projects, dayjs-hijri-plus offers the same Hijri support on Day.js. This package targets existing codebases already using Moment.js.

License

MIT. Copyright (c) 2026 Aric Camarata.