تقویم شمسی در وب؛ از نمایش تاریخ تا انتخابگر کامل
نمایش تاریخ شمسی با یک خط کد، و آنچه یک انتخابگر تاریخ شمسی خوب لازم دارد: تبدیل دقیق، شنبه اول هفته، تعطیلیها، ورود با کیبورد و دسترسپذیری.

تاریخ شمسی برای کاربر ایرانی پیشفرض است، ولی برای بیشتر کتابخانههای وب یک افزونهی اضافه. نتیجه این است که خیلی از محصولها یا تاریخ میلادی نشان میدهند، یا سه کتابخانهی مختلف تقویم شمسی دارند که هر کدام یکجور رفتار میکند.
خبر خوب این است که نمایش تاریخ شمسی امروز در مرورگر بدون هیچ کتابخانهای ممکن است. انتخابگر تاریخ کار بیشتری میخواهد.
نمایش: یک خط کد
مرورگرها تقویم شمسی را میشناسند:
const fmt = new Intl.DateTimeFormat("fa-IR-u-ca-persian", { dateStyle: "long" });
fmt.format(new Date("2026-11-09")); // "۱۸ آبان ۱۴۰۵"
با گزینههای دیگر میشود روز هفته، ساعت یا قالب کوتاه گرفت. هیچ محاسبهی دستی لازم نیست.
انتخابگر: چه چیزهایی لازم است؟
انتخابگر تاریخ باید در دو جهت تبدیل کند (شمسی ↔ میلادی)، چون سرور و دیتابیس معمولاً میلادی ذخیره میکنند. برای این بخش از یک الگوریتم تستشده یا کتابخانهی معتبر استفاده کنید و هیچوقت محاسبهی کبیسه را خودتان حدس نزنید.
فراتر از تبدیل، اینها انتخابگر خوب را از معمولی جدا میکنند:
- شنبه اول هفته، جمعه تعطیل. جدول ماه با شنبه شروع میشود و جمعهها رنگ متفاوت دارند.
- تعطیلیهای رسمی. این فهرست هر سال عوض میشود (تعطیلیهای قمری جابهجا میشوند)، پس آن را در یک فایل داده نگه دارید، با منبع و سال، نه داخل کد.
- راستبهچپ کامل. دکمهی «ماه بعد» در سمت چپ است و فلشش به چپ اشاره میکند.
- ارقام فارسی در روزها و سال.
- تایپ مستقیم. کاربری که تاریخ تولدش را میداند نباید ۳۰ سال عقب برود؛ فیلدی که «۱۳۷۵/۰۶/۲۱» را مستقیم بپذیرد.

کیبورد و دسترسپذیری
انتخابگری که فقط با ماوس کار کند، ناقص است. رفتار استاندارد کیبورد:
| کلید | کار |
|---|---|
| ← و → | روز قبل و بعد (در راستبهچپ، ← روز بعد است) |
| ↑ و ↓ | هفتهی قبل و بعد |
| Page Up و Page Down | ماه قبل و بعد |
| Home و End | اول و آخر هفته |
| Enter | انتخاب روز |
| Esc | بستن بدون تغییر |
صفحهخوان هم باید تاریخ کامل را بخواند: «شنبه ۱۸ آبان ۱۴۰۵»، نه فقط «۱۸».
بازهی تاریخ
برای رزرو، گزارش و فیلتر، انتخاب بازه لازم است: روز اول و آخر متمایز، روزهای بینشان کمرنگ و نمایش دو ماه کنار هم در دسکتاپ. و بازههای آمادهای مثل «۷ روز گذشته» و «این ماه» که بیشتر کاربران همینها را میخواهند.

برای بقیهی قاعدههای عدد و پول، راهنمای عدد، تاریخ و پول را ببینید.

طراح محصول و سازندهی دیزاینسیستم کاشی. سایتهای زیادی را با هوش مصنوعی ساختهام و چند سال اخیر روی ایجنتیک کردن فرایندهای هوش مصنوعی کار کردهام. اسکیلهای این سایت همانهاییاند که خودم هر روز با آنها کار میکنم.
بیشتر دربارهی منچیزی که خواندید را همین امروز به دستیارتان بدهید
همهی این اسکیلها با لایسنس دائمی، بهروزرسانی رایگان برای همیشه و راهنمای نصب برای همهی ابزارها.
ساخت و توسعهی دیزاینسیستم فارسی
تجربهی ۲۱۵ کامیت ساخت کاشی در یک اسکیل: از توکن و RTL تا دادههای ایرانی، دسترسپذیری، تست تصویری و انتشار نسخه.