mirror of
https://github.com/acamarata/date-fns-hijri.git
synced 2026-07-01 03:04:25 +00:00
108 lines
2.4 KiB
Markdown
108 lines
2.4 KiB
Markdown
# Basic Usage Examples
|
|
|
|
## Display today's Hijri date
|
|
|
|
```typescript
|
|
import { toHijriDate, getHijriMonthName } from 'date-fns-hijri';
|
|
|
|
const today = new Date();
|
|
const hijri = toHijriDate(today);
|
|
|
|
if (hijri) {
|
|
const monthName = getHijriMonthName(hijri.hm);
|
|
console.log(`${hijri.hd} ${monthName} ${hijri.hy} AH`);
|
|
// e.g. '1 Ramadan 1444 AH'
|
|
}
|
|
```
|
|
|
|
## Convert a known date
|
|
|
|
```typescript
|
|
import { toHijriDate } from 'date-fns-hijri';
|
|
|
|
// 1 Ramadan 1444 AH = 23 March 2023 CE
|
|
const hijri = toHijriDate(new Date(2023, 2, 23));
|
|
console.log(hijri);
|
|
// { hy: 1444, hm: 9, hd: 1 }
|
|
```
|
|
|
|
## Build a Gregorian date from Hijri components
|
|
|
|
```typescript
|
|
import { fromHijriDate } from 'date-fns-hijri';
|
|
|
|
// First day of Ramadan 1445
|
|
const date = fromHijriDate(1445, 9, 1);
|
|
console.log(date.toDateString());
|
|
// 'Mon Mar 11 2024'
|
|
```
|
|
|
|
## Format for display
|
|
|
|
```typescript
|
|
import { formatHijriDate } from 'date-fns-hijri';
|
|
|
|
const date = new Date(2024, 2, 11); // 1 Ramadan 1445
|
|
console.log(formatHijriDate(date, 'iD iMMMM iYYYY')); // '1 Ramadan 1445'
|
|
console.log(formatHijriDate(date, 'iDD/iMM/iYYYY')); // '01/09/1445'
|
|
console.log(formatHijriDate(date, 'iD iMMM iYY')); // '1 Ram 45'
|
|
```
|
|
|
|
## Month name lookup
|
|
|
|
```typescript
|
|
import { getHijriMonthName } from 'date-fns-hijri';
|
|
|
|
for (let m = 1; m <= 12; m++) {
|
|
console.log(`${m}: ${getHijriMonthName(m)}`);
|
|
}
|
|
// 1: Muharram
|
|
// 2: Safar
|
|
// 3: Rabi al-Awwal
|
|
// ...
|
|
// 9: Ramadan
|
|
// ...
|
|
// 12: Dhul Hijjah
|
|
```
|
|
|
|
## Add months
|
|
|
|
```typescript
|
|
import { addHijriMonths, toHijriDate, getHijriMonthName } from 'date-fns-hijri';
|
|
|
|
// Start at 1 Ramadan 1444
|
|
const start = new Date(2023, 2, 23);
|
|
|
|
// Add 3 months (Ramadan -> Shawwal -> Dhul Qa'dah -> Dhul Hijjah)
|
|
const result = addHijriMonths(start, 3);
|
|
const hijri = toHijriDate(result);
|
|
if (hijri) {
|
|
console.log(`${hijri.hd} ${getHijriMonthName(hijri.hm)} ${hijri.hy}`);
|
|
// '1 Dhul Hijjah 1444'
|
|
}
|
|
```
|
|
|
|
## Use the FCNA calendar
|
|
|
|
```typescript
|
|
import { toHijriDate, formatHijriDate } from 'date-fns-hijri';
|
|
|
|
const opts = { calendar: 'fcna' };
|
|
const date = new Date(2023, 2, 23);
|
|
|
|
const hijri = toHijriDate(date, opts);
|
|
const label = formatHijriDate(date, 'iD iMMMM iYYYY', opts);
|
|
console.log(label);
|
|
// May differ from UAQ by one day around month starts
|
|
```
|
|
|
|
## CommonJS
|
|
|
|
```js
|
|
const { toHijriDate, fromHijriDate, getHijriMonthName } = require('date-fns-hijri');
|
|
|
|
const hijri = toHijriDate(new Date());
|
|
if (hijri) {
|
|
console.log(`Month: ${getHijriMonthName(hijri.hm)}`);
|
|
}
|
|
```
|