
Product
Rust Support Now in Beta
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
moment-hijri
Advanced tools
A Hijri calendar (Based on Umm al-Qura calculations) plugin for moment.js.
A Hijri (Based on Umm al-Qura calculations) calendar system plugin for moment.js.
Hijri is the Islamic lunar calendar used by Muslims to determine the proper days on which to observe the annual fasting, to attend Hajj, and to celebrate other Islamic holidays and festivals. More information about Hijri can be found at wikipedia.
This plugin adds Hijri calendar support to momentjs library.
Calendar conversion is based on the Umm al-Qura calculations.
Adjusted dates has been changed to match ummalqura:-
Because of Using 'h' specifier might cause overlap with hour's specifier, the specifier has been changed from h
to i
as a prefix. For example in the previous version to get the four digit year,
hYYYY
will be used. In version 2.0 or above it should be replaced by iYYYY
.
Like momentjs
, moment-hijri
works in browser and in Node.js.
npm install moment-hijri
var moment = require('moment-hijri');
moment().format('iYYYY/iM/iD');
<script src="moment.js"></script>
<script src="moment-hijri.js"></script>
<script>
moment().format('iYYYY/iM/iD');
</script>
require.config({
paths: {
"moment": "path/to/moment",
"moment-hijri": "path/to/moment-hijri"
}
});
define(["moment-hijri"], function (moment) {
moment().format('iYYYY/iM/iD');
});
This plugin tries to mimic momentjs
api. Basically, when formatting or parsing a string, add an i
to the format token such as 'iYYYY' or 'iM'. For example:
m = moment('1410/8/28', 'iYYYY/iM/iD'); // Parse a Hijri date.
m.format('iYYYY/iM/iD [is] YYYY/M/D'); // 1410/8/28 is 1990/3/25
m.iYear(); // 1410
m.iMonth(); // 7
m.iDate(); // 28
m.iDayOfYear(); // 236
m.iWeek(); // 35
m.iWeekYear(); // 1410
m.add(1, 'iYear');
m.add(2, 'iMonth');
m.add(1, 'idate');
m.format('iYYYY/iM/iD'); // 1411/10/29
m.iMonth(11);
m.startOf('iMonth');
m.format('iYYYY/iM/iD'); // 1411/12/1
m.iYear(1392);
m.startOf('iYear');
m.format('iYYYY/iM/iD'); // 1420/1/1
moment('1436/1/30', 'iYYYY/iMM/iDD').isValid(); // false (This month is only 29 days).
moment('1436/2/30', 'iYYYY/iMM/iDD').isValid(); // true (This month is 30 days).
moment('1436/2/6 16:40', 'iYYYY/iM/iD HH:mm').format('YYYY-M-D HH:mm:ss'); // 2014-11-28 16:40:00
moment('2014-11-28 16:40:00', 'YYYY-M-D HH:mm:ss').endOf('iMonth').format('iYYYY/iM/iD HH:mm:ss'); // 1436/2/30 23:59:59
// Complex parse:
moment('1990 5 25', 'YYYY iM D').format('YYYY/MM/DD'); // 1990/03/25
To use the Arabic locale:
ar-SA
see here.Here is example:
<!-- 1- Load the moment-with-locales -->
<script src="http://momentjs.com/downloads/moment-with-locales.min.js"></script>
<script src="https://raw.githubusercontent.com/xsoh/moment-hijri/master/moment-hijri.js"></script>
<script>
moment.locale('ar-SA');// 2- Set the global locale to `ar-SA`
m = moment();
m.format('iYYYY/iM/iDهـ الموافق YYYY/M/Dم'); //3- use it normally
//١٤٣٧/٨/١٧هـ الموافق ٢٠١٦/٥/٢٤م
</script>
This project was built from the great work done by @behrang whose behind moment-jalaali project.
MIT
FAQs
A Hijri calendar (Based on Umm al-Qura calculations) plugin for moment.js.
The npm package moment-hijri receives a total of 16,383 weekly downloads. As such, moment-hijri popularity was classified as popular.
We found that moment-hijri demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket's Rust support is moving to Beta: all users can scan Cargo projects and generate SBOMs, including Cargo.toml-only crates, with Rust-aware supply chain checks.
Product
Socket Fix 2.0 brings targeted CVE remediation, smarter upgrade planning, and broader ecosystem support to help developers get to zero alerts.
Security News
Socket CEO Feross Aboukhadijeh joins Risky Business Weekly to unpack recent npm phishing attacks, their limited impact, and the risks if attackers get smarter.