Moment-islamic-civil is a Moment.js plugin that allows us to use the moment.js library’s utilities and methods with the Hijri calendar, a Muslim and Islamic Lunar calendar. The calendar conversions used by the plugin are based on civil calculations. In this article, we will learn about moment-islamic-civil, a moment.js plugin.
Syntax
const moment = require('@whitewater/moment-islamic-civil'); moment().format('iYYYY/iM/iD');
When parsing a date, with a data-type string, pass an “i” to the format token. For example, for the year, use “iYYYY”, or for the month, use “iM”.
Parameters: It takes two strings as optional parameters. The first string is the date that you want to parse, and the second string is the format in which you want to parse the date.
Return value: This API returns a moment object.
Installation plugin
npm install github:ACGC/moment-islamic-civil
Example 1: Parsing a Hijri date
const moment = require( '@whitewater/moment-islamic-civil' );
// Parse a Hijri date. const m = moment( '1210/7/28' , 'iYYYY/iM/iD' );
console.log(m.format( 'iYYYY/iM/iD [is] YYYY/M/D' ));
|
Output:
Example 2: Validating a Hijri date with our passed date.
// Importing the module const moment = require( '@whitewater/moment-islamic-civil' );
// False (This month is only 29 days) console.log(moment( '1536/1/30' , 'iYYYY/iMM/iDD' ).isValid());
// True (This month is 30 days). console.log(moment( '1536/2/30' , 'iYYYY/iMM/iDD' ).isValid());
|
Output:
Example 3: Formatting a Hijri date in different formats
// Importing the module const moment = require( '@whitewater/moment-islamic-civil' );
console.log(moment( '1536/2/6 16:40' , 'iYYYY/iM/iD HH:mm' )
.format( 'YYYY-M-D HH:mm:ss' ));
console.log(moment( '2014-10-28 16:40:00' , 'YYYY-M-D HH:mm:ss' )
.endOf( 'iMonth' ).format( 'iYYYY/iM/iD HH:mm:ss' ));
|
Output:
Example 4: An example of complex parsing of a Hijri date.
// Importing the module const moment = require( '@whitewater/moment-islamic-civil' );
console.log(moment( '1890 5 20' , 'YYYY iM D' )
.format( 'YYYY/MM/DD' ));
|
Output:
Reference: https://momentjscom.readthedocs.io/en/latest/moment/10-plugins/10-islamic-civil/