ChronosChronos

Bangla Plugin

Bangla Calendar Plugin — Chronos Plugin Documentation.

About Bangla Plugin

Bangla plugin is a plugin that adds Bangla calendar-related methods to Chronos.

Import & Usage

Import

To use the Bangla Plugin, import it first:

import { Chronos, chronos } from "chronos-date";
import { banglaPlugin } from 'chronos-date/plugins/banglaPlugin';

Register

Now you can use the plugin's methods:

// Register the plugin globally
Chronos.use(banglaPlugin);
// or
chronos.use(banglaPlugin);
// or
Chronos.register(banglaPlugin);
// or
chronos.register(banglaPlugin);

Usage

Example usage of the banglaPlugin:

const c = new Chronos('2023-04-14');
const banglaDate = c.toBangla(); // Get complete Bangla date object
console.log(banglaDate);  

Example Usage

playground.ts

Overview

The banglaPlugin adds comprehensive Bengali calendar functionality to Chronos, enabling:

  • Conversion between Gregorian and Bengali calendar dates
  • Bengali date formatting with customizable tokens
  • Access to Bengali year, month, day names, and seasons
  • Support for two calendar variants: 'revised-2019' (default) and 'revised-1966'
  • Multi-locale output (Bangla digits/names or Latin equivalents)

Methods Added by the Plugin

Note

All these methods are provided by banglaPlugin. You must register it using Chronos.use(banglaPlugin) before calling them. Once registered, all Chronos instances will have access to these methods.

MethodDescriptionReturns
toBangla()Converts to complete Bangla date objectBanglaDateObject
formatBangla()Formats date using Bengali tokensstring
getBanglaYear()Gets Bengali yearstring or number
getBanglaMonth()Gets Bengali monthstring or number
getBanglaDay()Gets Bengali day of monthstring or number
getBanglaDayName()Gets Bengali weekday namestring
getBanglaMonthName()Gets Bengali month namestring
getBanglaSeasonName()Gets Bengali season namestring
$configureBangla()Sets default calendar variant globallyvoid

API Reference

toBangla()

Converts the current date to a complete Bangla calendar date object.

Signature

toBangla<Locale extends $BnEn = 'bn'>(
  options?: BanglaDateOptions<Locale>
): BanglaDateObject<Locale>

Parameters

  • options: Optional configuration including:
    • locale: 'bn' (default) for Bengali output, 'en' for English/Latin output
    • variant: Calendar variant ('revised-2019' or 'revised-1966')

Return Value

Complete Bangla date object containing:

{
  year: string | number,      // Bengali year
  month: string | number,     // Bengali month (1-12)
  date: string | number,      // Bengali day of month (1-31)
  monthName: string,          // Bengali month name
  dayName: string,            // Bengali weekday name
  seasonName: string,         // Bengali season name
  isLeapYear: boolean         // Whether it's a leap year
}

Examples

const chronos = new Chronos('2023-04-14');
const banglaDate = chronos.toBangla();
// Returns: {
//   year: '১৪৩০',
//   month: '১',
//   date: '১',
//   monthName: 'বৈশাখ',
//   dayName: 'শুক্রবার',
//   seasonName: 'গ্রীষ্ম',
//   isLeapYear: false
// }

const banglaDateEn = chronos.toBangla({ locale: 'en' });
// Returns: {
//   year: 1430,
//   month: 1,
//   date: 1,
//   monthName: 'Boishakh',
//   dayName: 'Shukrobar (Friday)',
//   seasonName: 'Grisma (Summer)',
//   isLeapYear: false
// }

Remarks

  • Uses the default calendar variant ('revised-2019') unless specified
  • The locale determines output format (Bangla vs Latin)
  • Year 0 corresponds to 593 CE in the Gregorian calendar

formatBangla()

Formats the current date as a Bangla calendar date string using customizable tokens.

Signature

formatBangla(format?: SafeFormat, options?: BnCalendarConfig): string

Parameters

  • format: Format string using tokens (default: 'ddd, DD mmmm (SS), YYYY বঙ্গাব্দ - hh:mm:ss (A)')
  • options: Calendar configuration with variant property

Return Value

Formatted Bangla date string according to the specified format.

Format Tokens

TokenDescriptionExample
Full year (Bangla digits)১৪৩০
Last 2 digits of year৩০
or
Month (non-padded/padded) or ০১
Short month nameবৈ
Full month nameবৈশাখ
or
Day of month (non-padded/padded) or ০১
Cardinal day (same as D)
Short weekday
Weekday without 'বার'রবি
Full weekdayরবিবার
or
24-hour (non-padded/padded) or ০২
or
12-hour (non-padded/padded) or ০৭
or
Minute (non-padded/padded) or ০৯
or
Second (non-padded/padded) or ০৫
or
Millisecond (non-padded/padded)২৩ or ০২৩
or
AM/PM indicatorপূর্বাহ্ণ/অপরাহ্ণ
or
UTC offset+০৬:০০
Season nameগ্রীষ্ম
Season with 'কাল' suffixগ্রীষ্মকাল

Escaping Text

To output raw text (not interpreted as a token), wrap it in square brackets:

  • [আজ] dddআজ রবিবার
  • [year ]YYYYyear ২০২৫

Examples

const chronos = new Chronos('2023-04-14 14:30:00');

chronos.formatBangla();
// Returns: 'শুক্রবার, বৈশাখ ০১ (গ্রীষ্মকাল), ১৪৩০ বঙ্গাব্দ - ০২:৩০:০০ (অপরাহ্ণ)'

chronos.formatBangla('YYYY-MM-DD');
// Returns: '১৪৩০-০১-০১'

chronos.formatBangla('mmmm DD, YYYY');
// Returns: 'বৈশাখ ০১, ১৪৩০'

chronos.formatBangla('hh:mm:ss A');
// Returns: '০২:৩০:০০ অপরাহ্ণ'

chronos.formatBangla('[আজ] ddd, DD mmmm');
// Returns: 'আজ শুক্রবার, ০১ বৈশাখ'

getBanglaYear()

Gets the Bangla calendar year for the current date.

Signature

getBanglaYear<Locale extends $BnEn = 'bn'>(locale?: Locale): $BanglaYear<Locale>

Parameters

  • locale: 'bn' (default) for Bangla digits, 'en' for Latin digits

Return Value

Bangla year in the specified locale format.

Examples

const chronos = new Chronos('2023-04-14');
chronos.getBanglaYear(); // Returns: '১৪৩০'
chronos.getBanglaYear('en'); // Returns: 1430

Remarks

  • The Bangla year starts on April 14th in the Gregorian calendar
  • Year 0 corresponds to 593 CE

getBanglaMonth()

Gets the Bangla calendar month for the current date.

Signature

getBanglaMonth<Locale extends $BnEn = 'bn'>(
  options?: BanglaDateOptions<Locale>
): $BanglaMonth<Locale>

Parameters

  • options: Optional configuration with locale and variant

Return Value

Bangla month (1-12) in the specified locale format.

Examples

const chronos = new Chronos('2023-04-14');
chronos.getBanglaMonth(); // Returns: '১' (বৈশাখ)
chronos.getBanglaMonth({ locale: 'en' }); // Returns: 1
chronos.getBanglaMonth({ variant: 'revised-1966' }); // Uses 1966 variant

Remarks

  • Month 1 corresponds to বৈশাখ (mid-April to mid-May)
  • Results may vary between calendar variants near month boundaries

getBanglaDay()

Gets the Bangla calendar day of the month for the current date.

Signature

getBanglaDay<Locale extends $BnEn = 'bn'>(
  options?: BanglaDateOptions<Locale>
): $BanglaMonthDate<Locale>

Parameters

  • options: Optional configuration with locale and variant

Return Value

Bangla day of month (1-31) in the specified locale format.

Examples

const chronos = new Chronos('2023-04-14');
chronos.getBanglaDay(); // Returns: '১'
chronos.getBanglaDay({ locale: 'en' }); // Returns: 1
chronos.getBanglaDay({ variant: 'revised-1966' }); // Uses 1966 variant

Remarks

  • The day number is 1-based (১ = first day of the month)
  • Different variants may have different month lengths for leap years

getBanglaDayName()

Gets the Bangla name of the weekday for the current date.

Signature

getBanglaDayName<Locale extends $BnEn = 'bn'>(locale?: Locale): BanglaDayName<Locale>

Parameters

  • locale: 'bn' (default) for Bengali, 'en' for English

Return Value

Name of the weekday in the specified locale.

Examples

const chronos = new Chronos('2023-04-14'); // Friday
chronos.getBanglaDayName(); // Returns: 'শুক্রবার'
chronos.getBanglaDayName('en'); // Returns: 'Shukrobar (Friday)'

Remarks

  • Weekday names follow standard Bengali naming convention ending with 'বার'
  • English names include transliteration and standard English name

getBanglaMonthName()

Gets the Bangla name of the month for the current date.

Signature

getBanglaMonthName<Locale extends $BnEn = 'bn'>(
  options?: BanglaDateOptions<Locale>
): BanglaMonthName<Locale>

Parameters

  • options: Optional configuration with locale and variant

Return Value

Name of the month in the specified locale.

Examples

const chronos = new Chronos('2023-04-14');
chronos.getBanglaMonthName(); // Returns: 'বৈশাখ'
chronos.getBanglaMonthName({ locale: 'en' }); // Returns: 'Boishakh'
chronos.getBanglaMonthName({ variant: 'revised-1966' }); // Uses 1966 variant

Remarks

  • Month names follow traditional Bengali naming conventions
  • English names are transliterations of Bengali names

getBanglaSeasonName()

Gets the Bangla season name for the current date.

Signature

getBanglaSeasonName<Locale extends $BnEn = 'bn'>(
  options?: BanglaDateOptions<Locale>
): BanglaSeasonName<Locale>

Parameters

  • options: Optional configuration with locale and variant

Return Value

Name of the season in the specified locale.

Examples

const chronos = new Chronos('2023-04-14');
chronos.getBanglaSeasonName(); // Returns: 'গ্রীষ্ম'
chronos.getBanglaSeasonName({ locale: 'en' }); // Returns: 'Grisma (Summer)'

Bengali Seasons (ঋতু)

Season (Bangla)EnglishPeriod
গ্রীষ্মGrisma (Summer)Mid-April to Mid-June
বর্ষাBarsa (Monsoon)Mid-June to Mid-August
শরৎSarat (Autumn)Mid-August to Mid-October
হেমন্তHemanta (Late Autumn)Mid-October to Mid-December
শীতShhit (Winter)Mid-December to Mid-February
বসন্তBasanta (Spring)Mid-February to Mid-April

$configureBangla()

Sets the default Bangla calendar variant globally for all Chronos instances.

Signature

$configureBangla(options: BnCalendarConfig): void

Parameters

  • options: Configuration with variant property ('revised-2019' or 'revised-1966')

Behavior

  • Sets the global default variant for all Bangla-related methods
  • Affects all existing and future Chronos instances
  • Can be overridden per-call using the variant option in individual methods

Examples

const c1 = new Chronos();
const c2 = new Chronos();

// Default is 'revised-2019'
c1.getBanglaMonth(); // uses 'revised-2019'

// Set global default to 1966 variant
c1.$configureBangla({ variant: 'revised-1966' });

c1.getBanglaMonth(); // now uses 'revised-1966'
c2.getBanglaMonth(); // also uses 'revised-1966'

// Per-call override still works
c1.getBanglaMonth({ variant: 'revised-2019' }); // uses 'revised-2019' for this call only

Important Notes

  • This method does not modify the instance, only sets global configuration
  • If never called, default is 'revised-2019'
  • Valid variants: 'revised-1966' and 'revised-2019'

Type Definitions

BanglaDateObject

type BanglaDateObject<Locale extends $BnEn = 'bn'> = {
  year: $BanglaYear<Locale>;          // Bengali year
  month: $BanglaMonth<Locale>;        // Bengali month (1-12)
  date: $BanglaMonthDate<Locale>;     // Bengali day of month (1-31)
  dayName: BanglaDayName<Locale>;     // Bengali weekday name
  monthName: BanglaMonthName<Locale>; // Bengali month name
  seasonName: BanglaSeasonName<Locale>; // Bengali season name
  isLeapYear: boolean;                // Leap year status
};

BanglaDateOptions

interface BanglaDateOptions<Locale extends $BnEn> extends BnCalendarConfig {
  locale?: Locale | $BnEn;  // 'bn' or 'en'
}

interface BnCalendarConfig {
  variant?: BnCalendarVariant;  // 'revised-2019' or 'revised-1966'
}

Calendar Variants

type BnCalendarVariant = 'revised-2019' | 'revised-1966';

Complete Example

playground.ts

See Also

  • bn-calendar – Dedicated library for Bangla date manipulation without using this library.

Last updated: Wed, Jun 24, 2026 09:04:13AM (UTC)

On this page