prayertiming
Version:
A small library to calculate muslim prayer times based on coordinates and timezone
165 lines (136 loc) • 7.22 kB
Markdown
# prayertiming [](https://github.com/sh4hids/prayertiming) · [](https://github.com/sh4hids/prayertiming) · [](https://github.com/sh4hids/prayertiming/issues) · [](https://travis-ci.org/sh4hids/prayertiming)
A Muslim prayer times calculation library based on coordinates.
## Installation
```bash
$ npm i prayertiming
```
## Usage
```javascript
const { getByDay, getByMonth } = require('prayertiming');
```
or
```javascript
import { getByDay, getByMonth } from 'prayertiming';
```
```javascript
const date = new Date('2021-04-24T05:16:54.442Z');
getByDay({
date,
long: 90.38,
lat: 23.75,
method: 'Karachi',
timeFormat: '12h',
}); // returns and object
getByMonth({
month: 3,
year: 2021,
long: 90.38,
lat: 23.75,
method: 'Karachi',
timeFormat: '12h',
}); // returns an array of object
```
## Methods
### getByDay
This method takes latitude, longitude, date and some other configs and returns an object containing the prayer times.
#### inputs
| Parameter | Type | Description |
| ---------- | ---------------------- | ------------------------------------------------------------------- |
| date | JavaScript date object | A valid JavaScript date object. [default `new Date()`] |
| lat | Number | Latitude |
| long | Number | Longitude |
| timezone | Number | [default `collects from system`] |
| dst | Number | Daylight savings time [default `collects from system`] |
| elv | Number | Elevation [default `0`] |
| timeFormat | String | '24h' or '12h' format [default `24h`] |
| method | String | [Calculation method](README.md#calculation-methods) [default `MWL`] |
| config | Object | Custom calculation [configuration](README.md#config) [default `{}`] |
#### output
```javascript
{
date: '2021-04-24T05:16:54.442Z',
method: 'Karachi',
imsak: '4:01 am',
fajr: '4:11 am',
sunrise: '5:30 am',
dhuhr: '11:57 am',
asr: '3:23 pm',
asrHanafi: '4:31 pm',
sunset: '6:24 pm',
maghrib: '6:24 pm',
isha: '7:43 pm',
midnight: '11:57 pm',
}
```
### getByMonth
This method takes latitude, longitude, month, year and some other configs and returns an array of object containing the prayer times.
#### inputs
| Parameter | Type | Description |
| ---------- | ------ | ---------------------------------------------------------------------- |
| month | Number | JavaScript month number from 0 to 11 [default `new Date().getMonth()`] |
| year | Number | Valid year value [default `new Date().getFullYear()`] |
| lat | Number | Latitude |
| long | Number | Longitude |
| timezone | Number | [default `collects from system`] |
| dst | Number | Daylight savings time [default `collects from system`] |
| elv | Number | Elevation [default `0`] |
| timeFormat | String | '24h' or '12h' format [default `24h`] |
| method | String | [Calculation method](README.md#calculation-methods) [default `MWL`] |
| config | Object | Custom calculation [configuration](README.md#config) [default `{}`] |
#### output
```javascript
[
{
date: '2021-04-01T00:00:00.000Z',
method: 'Karachi',
imsak: '4:25 am',
fajr: '4:35 am',
sunrise: '5:51 am',
dhuhr: '12:02 pm',
asr: '3:30 pm',
asrHanafi: '4:30 pm',
sunset: '6:14 pm',
maghrib: '6:14 pm',
isha: '7:30 pm',
midnight: '12:03 am',
},
{
date: '2021-04-02T00:00:00.000Z',
method: 'Karachi',
imsak: '4:24 am',
fajr: '4:34 am',
sunrise: '5:50 am',
dhuhr: '12:02 pm',
asr: '3:29 pm',
asrHanafi: '4:30 pm',
sunset: '6:15 pm',
maghrib: '6:15 pm',
isha: '7:31 pm',
midnight: '12:02 am',
},
...
...
]
```
### config
| Parameter | Type | Description |
| --------- | ------ | ------------------------------------------------------------------------------------------------------ |
| imsak | String | Time difference between fajr and suhoor [default `10 min`] |
| dhuhr | String | Time difference between midday and dhuhr [default `0 min`] |
| maghrib | String | Time difference between sunset and maghrib [default `0 min`] |
| midnight | String | Midnight calculation method (`Standard` or `Jafari`) [default `Standard`] |
| highLats | String | Night portion calculation method (`AngleBased`, `OneSeventh` or `NightMiddle`) [default `NightMiddle`] |
### Calculation Methods
| Name | Authority | Config |
| ------- | --------------------------------------------- | -------------------------------------------------------- |
| Egypt | Egyptian General Authority of Survey | `fajr: 19.5, isha: 17.5` |
| ISNA | Islamic Society of North America (ISNA) | `fajr: 15, isha: 15` |
| Jafari | Shia Ithna-Ashari, Leva Institute, Qum | `fajr: 16, isha: 14, maghrib: 4, midnight: 'Jafari'` |
| JAKIM | Jabatan Kemajuan Islam Malaysia | `fajr: 20, isha: 18` |
| Karachi | University of Islamic Sciences, Karachi | `fajr: 18, isha: 18` |
| Makkah | Umm Al-Qura University, Makkah | `fajr: 18.5, isha: '90 min'` |
| MF | Muslims of France (MF) | `fajr: 12, isha: 12` |
| MWL | Muslim World League | `fajr: 18, isha: 17` |
| Tehran | Institute of Geophysics, University of Tehran | `fajr: 17.7, isha: 14, maghrib: 4.5, midnight: 'Jafari'` |
| MCW | Moonsighting Committee Worldwide | `fajr: 18, isha: 18` |
- _For Makkah fajr was 19 degrees before 1430 hijri_