Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/arashm/jdate

A Jalali to Gregorian converter in Javascript with support of formatting output
https://github.com/arashm/jdate

calendar gregorian-converter jalali jdate solar

Last synced: about 3 hours ago
JSON representation

A Jalali to Gregorian converter in Javascript with support of formatting output

Awesome Lists containing this project

README

        

JDate
=====

![Build Status](https://github.com/arashm/JDate/actions/workflows/node.js.yml/badge.svg?branch=master)
[![NPM Version](https://img.shields.io/npm/v/jalali-date)](https://www.npmjs.com/package/jalali-date)
[![NPM License](https://img.shields.io/npm/l/all-contributors.svg?style=flat)](https://github.com/arashm/JDate/blob/master/LICENSE)

A Jalali to Gregorian converter in JavaScript with support of formatting output

## Installation

Install via NPM/Yarn:

```
npm install jalali-date
```

You could grab the latest version from `lib` directory and use it:

```html


```

The full-version is useful for debugging. You may want to use minified version in production as it is smaller.

### Initialization

For initializing `JDate` you may either pass an array of Jalali date to it or a `Date` object. If no parameter is passed, the default is today:

```javascript
const JDate = require('jalali-date');
const jdate = new JDate; // => default to today
const jdate2 = new JDate(1393, 10, 11);
const jdate3 = new JDate([1393, 10, 11]);
const jdate4 = new JDate(new Date(2014, 1, 3));

```

### API
```javascript
jdate.date //=> [1393, 5, 13] An Array of Jalali Date
jdate._d // => Gregorian Date Object

// Getters
jdate.getFullYear() // => 1393
jdate.getMonth() // => 5
jdate.getDate() // => 13
jdate.getDay() // => 1

// Setters
jdate.setFullYear(1394)
jdate.setMonth(6)
jdate.setDate(12)

// Formatting output
jdate.format('dddd DD MMMM YYYY') // => پنج‌شنبه 12 شهریور 1394

// Static functions
JDate.isLeapYear(1393) // => false
JDate.daysInMonth(1393, 5) // => 31
JDate.toGregorian(1393, 12, 11) // => Gregorian Date object
JDate.toJalali(new Date) // => JDate object
```

## Formatting output
Use `format()` and following conversion identifiers as follows:

```javascript
date.format('dddd DD MMMM YYYY') //=> دوشنبه 6 امرداد 1393
```

The conversion identifiers are as follows:

| Identifier | Description | Example |
| ------------- | ------------- | ---------- |
| `YYY` or `YYYY` | Full Year (4 digits) | 1393 |
| `YY` | Year (2 digits) | 93 |
| `M` | Month in number | returns `5` for `امرداد` |
| `MM` | Month in number | returns `05` for `امرداد` |
| `MMM` or `MMMM` | Month in string | `امرداد` |
| `D` | Day in number | 26 |
| `DD` | Day in number | 06 |
| `d` or `dd` | Abbreviation of day name in string | `۱ش` (for یکشنبه) |
| `ddd` or `dddd` | Full day name in string | `یکشنبه` |

## Contribute

Report bugs and suggest feature in [issue tracker](https://github.com/arashm/Jalali-Calendar/issues). Feel free to `Fork` and send `Pull Requests`.

## License

[MIT](https://github.com/arashm/JDate/blob/master/LICENSE)