Skip to content

Shmulik-Kravitz/jewish-date

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

111 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Jewish Date

Jewish Date is a fast and modern 2kb alternative to hebcal with an MIT license.

npm version Gzip Size License Build Status Code Coverage

Jewish Date is a fast and modern 2kB JavaScript library that provides a simple and efficient Gregorian-to-Hebrew and vice versa date converter. With an MIT license and seamless compatibility with all browsers, node.js, and TypeScript, Jewish Date is a reliable and efficient date converter that can help you convert dates between the Hebrew and Gregorian calendars with ease.

  • ๐Ÿ“ฆ 2kb mini library (minified & gzip)
  • ๐Ÿ“œ MIT License
  • ๐Ÿ”ง Easy to use
  • ๐Ÿ’ป Seamless compatibility with both Node.js and the browser

Getting Started

Installation

yarn add jewish-date

Or with npm

npm install jewish-date --save

Usage

TypeScript & ES6 example

import {
  toJewishDate,
  formatJewishDate,
  toHebrewJewishDate,
  formatJewishDateInHebrew,
  toGregorianDate,
  JewishMonth,
} from "jewish-date";

const date = new Date(2023, 4, 9); // the month is 0-indexed (4 = May)
const jewishDate = toJewishDate(date);
console.log(jewishDate); // { year: 5783, monthName: "Iyyar", month: 8, day: 18 }

const jewishDateInEnglish = formatJewishDate(jewishDate);
console.log(jewishDateInEnglish); // 18 Iyyar 5783

// With custom format pattern (similar to date-fns)
const formatted = formatJewishDate(jewishDate, "dd/MM/yyyy");
console.log(formatted); // 18/08/5783

const jewishDateInHebrew = toHebrewJewishDate(jewishDate);
console.log(jewishDateInHebrew); // { day: "ื™ืดื—", monthName: "ืื™ื™ืจ", year: "ื”ืชืฉืคืดื’" }

const jewishDateInHebrewStr = formatJewishDateInHebrew(jewishDate);
console.log(jewishDateInHebrewStr); // ื™ืดื— ืื™ื™ืจ ื”ืชืฉืคืดื’

// With custom format pattern in Hebrew (gematria)
const formattedHebrew = formatJewishDateInHebrew(jewishDate, "D/MM/YY");
console.log(formattedHebrew); // ื™ืดื—/02/ืคืดื’

const date2 = toGregorianDate({
  year: 5783,
  monthName: JewishMonth.Iyyar,
  day: 18,
});
console.log(date2); // Tue May 09 2023 00:00:00 GMT+0300 (Israel Daylight Time)

For ES5

Replace

import {
  toJewishDate,
  formatJewishDate,
  toHebrewJewishDate,
  formatJewishDateInHebrew,
  toGregorianDate,
  JewishMonth,
} from "jewish-date";

With

const {
  toJewishDate,
  formatJewishDate,
  toHebrewJewishDate,
  formatJewishDateInHebrew,
  toGregorianDate,
  JewishMonth,
} = require("jewish-date");

Format Patterns

Both formatJewishDate and formatJewishDateInHebrew accept an optional pattern string as the second argument. The pattern uses tokens similar to date-fns.

Supported Tokens

Token Description formatJewishDate formatJewishDateInHebrew
d Day (numeric) 8 8
dd Day (zero-padded) 08 08
D Day (gematria in Hebrew) 8 ื—ืณ
M Month number 2 2
MM Month number (padded) 02 02
MMMM Month name Iyyar ืื™ื™ืจ
yy Year short (numeric) 83 83
YY Year short (gematria) 83 ืคืดื’
yyyy Year full (numeric) 5783 5783
YYYY Year full (gematria) 5783 ื”ืชืฉืคืดื’

Examples

const jewishDate = toJewishDate(new Date(2023, 4, 9)); // 18 Iyyar 5783

// English formatting (default: "d MMMM yyyy")
formatJewishDate(jewishDate);                 // "18 Iyyar 5783"
formatJewishDate(jewishDate, "dd/MM/yyyy");   // "18/08/5783"
formatJewishDate(jewishDate, "MMMM d, yyyy"); // "Iyyar 18, 5783"
formatJewishDate(jewishDate, "yyyy-MM-dd");   // "5783-08-18"

// Hebrew formatting (default: "D MMMM YYYY")
formatJewishDateInHebrew(jewishDate);                 // "ื™ืดื— ืื™ื™ืจ ื”ืชืฉืคืดื’"
formatJewishDateInHebrew(jewishDate, "D MMMM YYYY");  // "ื™ืดื— ืื™ื™ืจ ื”ืชืฉืคืดื’"
formatJewishDateInHebrew(jewishDate, "dd/MM/yyyy");   // "18/08/5783" (numeric)
formatJewishDateInHebrew(jewishDate, "d MMMM yyyy");  // "18 ืื™ื™ืจ 5783" (mixed)

License

Jewish Date is licensed under a MIT License.

About

Jewish Date is a fast and modern 2kB JavaScript library that provides a simple and efficient Gregorian-to-Hebrew and vice versa date converter.

Topics

Resources

License

Stars

Watchers

Forks

Contributors