# aio-date

> ```javascript npm install aio-date ```

Latest version **8.1.4** (published 2026-08-07) · ISC license · 0 weekly downloads

## Install

```sh
npm install aio-date
pnpm add aio-date
yarn add aio-date
bun add aio-date
```

## Health

**Score 65/100 (B)** — status: active.

Positive: has types; no vulnerabilities; recently updated; high maintenance score; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 8.1.4 |
| Published | 2026-08-07 |
| First published | 2022-07-03 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 47.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | mohammad sharif feiz feiz.ms@gmail.com |
| Maintainers | aio-collection |

## Links

- npm: https://www.npmjs.com/package/aio-date
- Repository: https://github.com/mohammadFeiz/aio-date
- Homepage: https://github.com/mohammadFeiz/aio-date#readme
- Issues: https://github.com/mohammadFeiz/aio-date/issues
- npm.io page: https://npm.io/package/aio-date

## Recent versions

- 8.1.4 (latest) — 2026-08-07
- 8.1.3 — 2026-05-11
- 8.1.2 — 2025-12-20
- 8.1.1 — 2025-12-12
- 8.1.0 — 2025-11-29
- 8.0.7 — 2025-10-17
- 8.0.6 — 2025-10-01
- 8.0.5 — 2025-10-01
- 8.0.4 — 2025-09-29
- 8.0.3 — 2025-09-29
- 8.0.2 — 2025-09-29
- 8.0.1 — 2025-09-29
- 8.0.0 — 2025-09-15
- 7.0.0 — 2025-08-17
- 6.0.1 — 2025-07-12
- … 17 more at https://npm.io/package/aio-date/versions

## README

# aio-date
## all calculations of dates (gregorian and jalali)

### instalation
```javascript
npm install aio-date
```

### use
```javascript
import AIODate from 'aio-date';
```
### date property of all functions can be:
- #### string 
    - `'2022/4/5'` (year is 2022 month is 4 day is 5)
    - `'2022/4/5/12/30'` (year is 2022 month is 4 day is 5 hour is 12 minute is 30)
- #### array
    - `[2022,4,5]` (year is 2022 month is 4 day is 5)
    - `[2022,4,5,12,30]` (year is 2022 month is 4 day is 5 hour is 12 minute is 30)
- #### iso date
    - `'2015-03-25T12:00:00Z'`
- #### miliseconds date
    - `16765675665656`

### for use AIODate class
``` javascript
import AIODate from 'aio-date';
const inst = new AIODate()
```
## toJalali

#### type:
```javascript
(date:number | string | number[])=>number[]
```

#### Example:
```javascript
let result = inst.toJalali('2022/4/4');
//result is [1401,1,15]
```

## toGregorian
#### type:
```javascript
(date:number | string | number[])=>number[]
```
#### Example:

``` javascript
let result = inst.toGregorian('1400/2/2');
//result is [2021,4,22] 
```

## getToday

#### type:
```javascript
(jalali?:boolean)=>number[]
```

#### Gregorian Example
``` javascript
let gregorianToday = inst.getToday();
//result is [2023,3,12,20,26,57,9]
```
#### Jalali Example
``` javascript
let jalaliToday = AIODate().getToday(true);
//result is [1401,12,21,20,26,57,9]
```

## getWeekDay

#### type:
```javascript
(date:string | number | number[])=>{weekDay:string,index:number}
```

#### Gregorian Example
``` javascript
let {weekDay,index} = inst.getWeekDay('2023/6/6');
//weekday is TUESDAY
//index is 2
```

#### Jalali Example
``` javascript
let {weekDay,index} = inst.getWeekDay('1401/5/7');
//weekday is جمعه
//index is 6
```

## getDateByPattern

#### type:
```javascript
(date: string | num,ber | number[], pattern: string) => string
```
#### Example:
``` javascript
let result = inst.getDateByPattern('2023/4/5','{year}/{month}/{day} {weekDay}');
//result is '2023/4/5 WEDNESDAY'
```

``` javascript
let result = inst.getDateByPattern('2023/4/5','{day} {monthString} {year} {weekDay}');
//result is '5 APRIL 2023 WEDNESDAY'
```

``` javascript
let result = inst.getDateByPattern('2023/4/5/10/30','{year}/{month}/{day} {hour}:{minute}');
//result is '2023/4/5 10:30'
```

``` javascript
let result = inst.getDateByPattern([2023,4,5,10,30],'{year}/{month}/{day} {hour}:{minute}');
//result is '2023/4/5 10:30'
```

## toArray
#### type:
``` javascript
(date: string | number | number[], jalali?: boolean) => number[]
```
#### Example:
```javascript
let result = inst.toArray('2022/4/4');
//result is [2022,4,4]
```
``` javascript
let result = inst.toArray(1432445566787);
//result is [2015,5,24,10,2,46,8]
```

## toObject
#### type:
``` javascript
(
    date: 
        string | 
        number | 
        number[] | 
        {year:number,month:number,day:number,hour:number,minute:number,second:number,tenthsecond:number}, 
    jalali?: boolean
) => {year:number,month:number,day:number,hour:number,minute:number,second:number,tenthsecond:number}
```
#### Example:
```javascript
let result = inst.toObject('2022/4/4');
//result is {year:2022,month:4,day:4,hour:0,minute:0,second:0,tenthsecond:0}
```
``` javascript
let result = inst.toObject(1432445566787);
//result is {year:2015,month:5,day:24,hour:10,minute:2,second:46,tenthsecond:8}
```

## getTime
#### type:
```javascript
(date: string | number | number[], jalali?: boolean) => number
```
#### Example:
```javascript
let result = inst.getTime('2022/4/5');
//result is 1649100600000
```
```javascript
let result = inst.getTime('2022/4/5/10/30');
//result is 1649138400000
```
```javascript
let result = inst.getTime([2022,4,5,10,30]);
//result is 1649138400000
```

```javascript
let result = inst.getTime('2015-03-25T12:00:00Z');
//result is 1427268600000
```
```javascript
let result = inst.getTime(1755555656665);
//result is 1755555656665
```
```javascript
let result = inst.getTime('1402/3/3');
//result is 1684873800000
```

## compaire

#### type:
```javascript
(date1: string | number | number[], date2: string | number | number[]) => 'less' | 'greater' | 'equal'
```

#### Example:
```javascript
let result = inst.compaire('2022/4/4','2022/7/10');       
//result is 'less'
```

```javascript
let result = inst.compaire('2022/4/4','2022/2/10')       
//result is 'greater'
```
                    
```javascript
let result = inst.compaire('2022/4/4','2022/4/4')       
//result is 'equal'
```

```javascript
let result = inst.compaire('2022/4/4',1700000000000)       
//result is 'less'
```

```javascript
let result = inst.compaire('2022/4/4',[2022,2,10])       
//result is 'greater'
```

## getMonthDaysLength

#### type:
```javascript
(date: string | number | number[]) => number
```

### Example:
```javascript
let result = inst.getMonthDaysLength('2022/4');
//result is 30
```

```javascript
let result = inst.getMonthDaysLength('2022/7/5');
//result is 31
```

```javascript
let result = inst.getMonthDaysLength('1400/12');
//result is 29
```

```javascript
let result = inst.getMonthDaysLength('1399/12');
//result is 30
```

## getDelta

#### type:
```javascript
(date: string | number | number[], otherDate: string | number | number[], unit?: 'day' | 'hour' | 'minute' | 'second' | 'tenthsecond' | 'milisecond') => {
    day: number,
    hour: number,
    minute: number,
    second: number,
    tenthsecond: number,
    milisecond: number,
    type: 'remaining' | 'passed' | 'now'
}
```

#### Example:

```javascript
let result = inst.getDelta('2023/4/5',new Date().getTime());
//result is 
//{
//  "day": 23,
//  "hour": 3,
//  "minute": 10,
//  "second": 57,
//  "tenthsecond": 9,
//  "type": "remaining"
//}
```
```javascript
let result = inst.getDelta(new Date().getTime() + 23000,new Date().getTime());
//result is 
//{
//   "day": 0,
//   "hour": 0,
//   "minute": 0,
//   "second": 23,
//   "tenthsecond": 0,
//   "type": "remaining"
//}
```
```javascript
let result = inst.getDelta(date:new Date().getTime() - 23000,new Date().getTime());
//result is 
//{
//   "day": 0,
//   "hour": 0,
//   "minute": 0,
//   "second": 23,
//   "tenthsecond": 0,
//   "type": "passed"
//}
```
```javascript
let res = inst.getDelta('1401/12/12',new Date().getTime());
//res is 
//{
//   "day": 9,
//   "hour": 20,
//   "minute": 49,
//   "second": 2,
//   "tenthsecond": 0,
//   "type": "passed"
//}
```

## getNextTime
#### type:
```javascript
(date: string | number | number[], offset: number, jalali?: boolean) => number[]
```

#### Example:
```javascript
let result = AIODate().getNextTime('1400/2/2/22/30',1.5 * 60 * 60 * 1000);
```

## getDatesBetween
#### type:
```javascript
(date: stirng | number | number[], otherDate: stirng | number | number[], step?: number) => any[]
```
#### Example:
```javascript
let result = AIODate().getdatesBetween('2022/4/4','2022/7/10',48 * 60 * 60 * 1000);       
//result is [
//  "6 APRIL 2022",
//  "8 APRIL 2022",
//  "10 APRIL 2022",
//  "12 APRIL 2022",
//  "14 APRIL 2022",
//  "16 APRIL 2022",
//  "18 APRIL 2022",
//  "20 APRIL 2022",
//  "22 APRIL 2022",
//  "24 APRIL 2022",
//  "26 APRIL 2022",
//  "28 APRIL 2022",
//  "30 APRIL 2022",
//  "2 MAY 2022",
//  "4 MAY 2022",
//  "6 MAY 2022",
//  "8 MAY 2022",
//  "10 MAY 2022",
//  "12 MAY 2022",
//  "14 MAY 2022",
//  "16 MAY 2022",
//  "18 MAY 2022",
//  "20 MAY 2022",
//  "22 MAY 2022",
//  "24 MAY 2022",
//  "26 MAY 2022",
//  "28 MAY 2022",
//  "30 MAY 2022",
//  "1 JUNE 2022",
//  "3 JUNE 2022",
//  "5 JUNE 2022",
//  "7 JUNE 2022",
//  "9 JUNE 2022",
//  "11 JUNE 2022",
//  "13 JUNE 2022",
//  "15 JUNE 2022",
//  "17 JUNE 2022",
//  "19 JUNE 2022",
//  "21 JUNE 2022",
//  "23 JUNE 2022",
//  "25 JUNE 2022",
//  "27 JUNE 2022",
//  "29 JUNE 2022",
//  "1 JULY 2022",
//  "3 JULY 2022",
//  "5 JULY 2022",
//  "7 JULY 2022",
//  "9 JULY 2022"
//]
                    
```
- #### date is required (string | array | number)
- #### otherDate is required (string | array | number)
- #### step is required (number) (miliseconds)
- #### pattern is optional (string)

---
_Source: https://npm.io/package/aio-date · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
