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
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.
| Method | Description | Returns |
|---|---|---|
toBangla() | Converts to complete Bangla date object | BanglaDateObject |
formatBangla() | Formats date using Bengali tokens | string |
getBanglaYear() | Gets Bengali year | string or number |
getBanglaMonth() | Gets Bengali month | string or number |
getBanglaDay() | Gets Bengali day of month | string or number |
getBanglaDayName() | Gets Bengali weekday name | string |
getBanglaMonthName() | Gets Bengali month name | string |
getBanglaSeasonName() | Gets Bengali season name | string |
$configureBangla() | Sets default calendar variant globally | void |
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 outputvariant: 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
0corresponds to593 CEin the Gregorian calendar
formatBangla()
Formats the current date as a Bangla calendar date string using customizable tokens.
Signature
formatBangla(format?: SafeFormat, options?: BnCalendarConfig): stringParameters
format: Format string using tokens (default:'ddd, DD mmmm (SS), YYYY বঙ্গাব্দ - hh:mm:ss (A)')options: Calendar configuration withvariantproperty
Return Value
Formatted Bangla date string according to the specified format.
Format Tokens
| Token | Description | Example |
|---|---|---|
| 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 ]YYYY→year ২০২৫
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: 1430Remarks
- The Bangla year starts on April 14th in the Gregorian calendar
- Year
0corresponds to593 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 withlocaleandvariant
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 variantRemarks
- 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 withlocaleandvariant
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 variantRemarks
- 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 withlocaleandvariant
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 variantRemarks
- 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 withlocaleandvariant
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) | English | Period |
|---|---|---|
| গ্রীষ্ম | 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): voidParameters
options: Configuration withvariantproperty ('revised-2019'or'revised-1966')
Behavior
- Sets the global default variant for all Bangla-related methods
- Affects all existing and future
Chronosinstances - Can be overridden per-call using the
variantoption 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 onlyImportant 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
See Also
- bn-calendar – Dedicated library for Bangla date manipulation without using this library.
Last updated: Wed, Jun 24, 2026 09:04:13AM (UTC)
