Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

jalali-moment

Package Overview
Dependencies
Maintainers
1
Versions
63
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jalali-moment

Jalali (Persian, Khorshidi, Shamsi) calendar system to use in javascript or typescript.

  • 2.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
8.3K
increased by0.57%
Maintainers
1
Weekly downloads
 
Created
Source

jalali-moment

A Jalali (Jalali, Persian, Khorshidi, Shamsi) calendar system plugin for moment.js. DEMO

MIT License Build Status NPM version Package Quality dependencies Quality dev dependencies Quality Codacy Badge Codacy Badge

Jalali calendar is a solar calendar. It gains approximately 1 day on the Julian calendar every 128 years. Read more on Wikipedia.

This plugin adds Jalali calendar support to momentjs library.

Calendar conversion is based on the algorithm provided by Kazimierz M. Borkowski and has a very good performance.

Where to use it

Like momentjs, jalali-moment works in browser and in Node.js.

Install

Install via NPM

npm install jalali-moment -S

Install via bower

bower install jalali-moment --save

Node.js

var moment = require('jalali-moment');
moment().format('jYYYY/jM/jD');

Angular

import * as moment from 'jalali-moment';

add a jalali pipe

@Pipe({
  name: 'jalali'
})
export class JalaliPipe implements PipeTransform {
  transform(value: any, args?: any): any {
    let MomentDate = moment(value);
    return MomentDate.format("jYYYY/jM/jD");
  }
}

and use it in component template

 <div>{{ loadedData.date | jalali }}</div>

Typescript

import * as moment from 'jalali-moment';
let todayJalali = moment().format('jYYYY/jM/jD');

ES5

<!--<script src="bower_components/jalali-moment/dist/jalali-moment.browser.js"></script>-->
<!--<script src="node_modules/jalali-moment/dist/jalali-moment.browser.js"></script>-->
<script src="thisRepository/jalali-moment/dist/jalali-moment.browser.js"></script>
<script>
  moment().format('jYYYY/jM/jD');
</script>

Plunker

<script src='https://unpkg.com/jalali-moment/dist/jalali-moment.browser.js'></script>
<script>
  moment().format('jYYYY/jM/jD');
</script>

Plunker and Typescript

You could use systemjs to import this library into your project like this

API

This plugin tries to mimic moment.js api. Basically, when you want to format or parse a string, just add a j to the format token like 'jYYYY' or 'jM'. For example:

m = moment('1367/11/4', 'jYYYY/jM/jD');
m.format('jYYYY/jM/jD [is] YYYY/M/D'); // 1367/11/4 is 1989/1/24
m.jDayOfYear(); // 310
m.jWeek(); // 45
m.jWeekYear(); // 1367
moment.jIsLeapYear(m.jYear()); // false
m.jYear(1368); // set jalali year
m.jMonth(); // 10
// jMonth Accepts numbers from 0 to 11. If the range is exceeded, it will bubble up to the year.
m.jMonth(3); // set a jalali month
m.jDate(10); // set a date
m.format("jYYYY/jMM/jD"); // 1368/4/10
m.subtract(1, "jyear"); // add a Jalali Year
m.format("jYYYY/jMM/jD"); // 1367/4/10
m.add(2, "jmonth"); // add Jalali Month
m.format("jYYYY/jMM/jD"); // 1367/6/10

moment('1392/6/3 16:40', 'jYYYY/jM/jD HH:mm')
    .format('YYYY-M-D HH:mm:ss'); // 2013-8-25 16:40:00

moment('2013-8-25 16:40:00', 'YYYY-M-D HH:mm:ss')
    .endOf('jMonth')
    .format('jYYYY/jM/jD HH:mm:ss'); // 1392/6/31 23:59:59

moment('1981 5 17', 'YYYY jM D')
    .format('YYYY/MM/DD'); // 1981/07/17

for more information about api you could read moment.js.

Load Persian

To add Persian language, use loadPersian method:

moment().format('jYYYY/jMMMM/jD'); // 1367/Bahman/4
moment.loadPersian();
moment().format('jYYYY/jMMMM/jD'); // 1367/بهمن/4
moment.loadPersian(true); //use persian digits
moment().format('jYYYY/jMMMM/jD'); // ۱۳۶۷/بهمن/۴
moment.unloadPersian();
moment().format('jYYYY/jMMMM/jD'); // 1367/Bahman/4

Just use jalali calendar system

We could use both calendar system concurrently but sometimes we just need jalali system or we wouldn't like to change all moment.js methods and formats to work in jalali system. for example when you want to edit a datepicker (which is written by using moment.js) to work in jalali calendar system.

    moment().format('YYYY/MMMM/D'); // 1989/January/24
    moment.useJalaliSystemPrimarily();
    
    moment().format('YYYY/MMMM/D'); // 1367/Bahman/4
    moment().subtract(1,'year').format('YYYY/MMMM/D'); // 1366/bahman/4
    moment().subtract(1,'month').format('YYYY/MMMM/D'); // 1367/dey/4
    
    moment.useJalaliSystemSecondary();
    moment().format('YYYY/MMMM/D'); // 1989/January/24

jalali-angular-datepicker ( angular2 or more)

A highly configurable date picker built for Angular 2 applications using jalali-moment is fingerpich/jalali-angular-datepicker created by @Fingerpich.

License

MIT

Keywords

FAQs

Package last updated on 20 Jun 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc