معرفی کتابخانه Multi-Calendar DatePicker
در یک پروژه در ASP.NET Core نیاز به یک کتابخانه DatePicker داشتم که علاوه بر تاریخ شمسی از تاریخ میلادی و قمری نیز پشتیبانی کند. کتابخانه های موجود مانند MD.BootstrapPersianDateTimePicker (با پشتیبانی از تاریخ شمسی و میلادی) و JalaliDatePicker (فقط پشتیبانی از تاریخ شمسی) نه به صورت کامل از استایل ها و تم های Bootstrap پشتیبانی می کنند و نه هر سه تقویم مورد نیز پروژه را پوشش می دادند. بنابراین جهت توسعه DatePicker مورد نظر اقدام کردم.
ویژگیهای کلیدی
• پشتیبانی از ۳ سیستم تقویمی:
• تقویم میلادی، محدوده ۱۹۰۰-۲۱۰۰
• تقویم شمسی/جلالی، محدوده ۱۲۰۰-۱۵۰۰ با الگوریتم کبیسه تأیید شده
• تقویم هجری - محدوده ۱۰۰۰-۲۰۰۰ با الگوریتم بهبود یافته
• Time Picker با فرمت ۱۲ و ۲۴ ساعته
• پشتیبانی از حالت Dark Mode
• پشتیبانی از حالت LTR و RTL
• امکان تایپ تاریخ در Input ها و همزمان سازی تقویم در DatePicker با تاریخ وارد شده
• امکان مشخص کردن محدوده تاریخ و غیرفعال کردن تاریخ های خارج از آن محدوده
• پشتیبانی از حالت Responsive و نمایش صحیح در موبایل و تبلت
• اعتبارسنجی مقادیر وارد شده در Input ها با تایم اوت قابل تنظیم
• امکان استفاده از API در Javascript
• قابلیت پیکربندی DatePicker از طریق Data Attribute های المنت در HTML
دمو پروژه:
https://delphiassistant.github.io/MultiCalendarDatePicker
لینک پروژه در گیت هاب:
https://github.com/delphiassistant/MultiCalendarDatePicker
لازم به ذکر است که در هنگام برنامه نویسی این پروژه متوجه شدم ورژن شمسی و قمری کتابخانه Moment.js که معمولا در چنین کاربردهایی استفاده می شود و در مخزن های عمومی مانند NPM موجود است باگهایی مانند عدم محاسبه صحیح تاریخ ها در سالهای کبیسه، درست کار نکردن تابع هایی مانند getDay و ... دارند. نسخه اصلاح شده کتابخانه های فوق در فولدر moment.js-fixes مخزن گیت هاب فوق موجود است و باگهای فوق الذکر در ورژن موجود در فولدر فوق رفع شده است.
اگر در استفاده از کتابخانه فوق به باگ خاصی برخوردید یا پیشنهاد خاصی برای افزودن امکانات به این کتابخانه دارید خوشحالی می شوم بشنوم.
#WebDevelopment #OpenSource #JavaScript #jQuery #DatePicker #PersianCalendar #HijriCalendar #GregorianCalendar #RTL #Internationalization #i18n
Post #300
889