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

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

  • 1.0.4
  • 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.

MIT License Build Status NPM version Package Quality

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

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');

API

This plugin tries to mimic momentjs 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('1360/5/26', 'jYYYY/jM/jD') // Parse a Jalaali date
m.format('jYYYY/jM/jD [is] YYYY/M/D') // 1360/5/26 is 1981/8/17

m.jYear() // 1360
m.jMonth() // 4
m.jDate() // 26
m.jDayOfYear() // 150
m.jWeek() // 22
m.jWeekYear() // 1360

m.add(1, 'jYear')
m.add(2, 'jMonth')
m.add(3, 'day')
m.format('jYYYY/jM/jD') // 1361/7/29

m.jMonth(11)
m.startOf('jMonth')
m.format('jYYYY/jM/jD') // 1361/12/1

m.jYear(1392)
m.startOf('jYear')
m.format('jYYYY/jM/jD') // 1392/1/1

m.subtract(1, 'jYear')
m.subtract(1, 'jMonth')
m.format('jYYYY/jM/jD') // 1390/12/1

moment('1391/12/30', 'jYYYY/jMM/jDD').isValid() // true (leap year)
moment('1392/12/30', 'jYYYY/jMM/jDD').isValid() // false (common year)
moment.jIsLeapYear(1391) // true
moment.jIsLeapYear(1392) // false

moment.jDaysInMonth(1395, 11) // 30
moment.jDaysInMonth(1394, 11) // 29

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

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

To add Persian language, use loadPersian method:

moment.loadPersian()

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. In this I needed a plugin on moment.js to have Jalali date so at first I had been using moment-jalaali but I can't so I forked it and add some new feature to it.

License

MIT

Keywords

FAQs

Package last updated on 27 Apr 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