bangladatejs
Version:
to convert js date object into bangla date format
54 lines (53 loc) • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatBanglaDate = exports.DateFormatType = void 0;
// Define Bangla month names
const banglaMonths = [
"জানুয়ারি",
"ফেব্রুয়ারি",
"মার্চ",
"এপ্রিল",
"মে",
"জুন",
"জুলাই",
"আগস্ট",
"সেপ্টেম্বর",
"অক্টোবর",
"নভেম্বর",
"ডিসেম্বর" // December
];
// Function to convert English digits to Bangla digits
const toBanglaDigits = (num) => {
const banglaDigits = ["০", "১", "২", "৩", "৪", "৫", "৬", "৭", "৮", "৯"];
return num
.toString()
.split("")
.map((digit) => banglaDigits[parseInt(digit)] || digit)
.join("");
};
// Enum for format types
var DateFormatType;
(function (DateFormatType) {
DateFormatType["Long"] = "long";
DateFormatType["Slash"] = "slash";
DateFormatType["Dash"] = "dash";
})(DateFormatType = exports.DateFormatType || (exports.DateFormatType = {}));
// Main function to format date
function formatBanglaDate(date, formatType) {
const day = toBanglaDigits(date.getDate());
const monthIndex = date.getMonth();
const year = toBanglaDigits(date.getFullYear());
const paddedDay = date.getDate() < 10 ? `০${day}` : day;
const paddedMonth = monthIndex + 1 < 10 ? `০${toBanglaDigits(monthIndex + 1)}` : toBanglaDigits(monthIndex + 1);
switch (formatType) {
case DateFormatType.Long:
return `${day} ${banglaMonths[monthIndex]}, ${year}`;
case DateFormatType.Slash:
return `${paddedDay}/${paddedMonth}/${year}`;
case DateFormatType.Dash:
return `${paddedDay}-${paddedMonth}-${year}`;
default:
throw new Error("Invalid format type");
}
}
exports.formatBanglaDate = formatBanglaDate;