رفتن به محتوای اصلی

تقویم شمسی در وب؛ از نمایش تاریخ تا انتخابگر کامل

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

کاور مقاله: تقویم شمسی در وب

تاریخ شمسی برای کاربر ایرانی پیش‌فرض است، ولی برای بیشتر کتابخانه‌های وب یک افزونه‌ی اضافه. نتیجه این است که خیلی از محصول‌ها یا تاریخ میلادی نشان می‌دهند، یا سه کتابخانه‌ی مختلف تقویم شمسی دارند که هر کدام یک‌جور رفتار می‌کند.

خبر خوب این است که نمایش تاریخ شمسی امروز در مرورگر بدون هیچ کتابخانه‌ای ممکن است. انتخابگر تاریخ کار بیشتری می‌خواهد.

نمایش: یک خط کد

مرورگرها تقویم شمسی را می‌شناسند:

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بستن بدون تغییر

صفحه‌خوان هم باید تاریخ کامل را بخواند: «شنبه ۱۸ آبان ۱۴۰۵»، نه فقط «۱۸».

بازه‌ی تاریخ

برای رزرو، گزارش و فیلتر، انتخاب بازه لازم است: روز اول و آخر متمایز، روزهای بین‌شان کم‌رنگ و نمایش دو ماه کنار هم در دسکتاپ. و بازه‌های آماده‌ای مثل «۷ روز گذشته» و «این ماه» که بیشتر کاربران همین‌ها را می‌خواهند.

انتخاب بازه‌ی تاریخ با دو ماه کنار هم و بازه‌های آماده
بیشتر کاربران بازه‌ی آماده را انتخاب می‌کنند؛ آن را در دسترس بگذارید

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

عکس سپنتا پویا
نویسنده

طراح محصول و سازنده‌ی دیزاین‌سیستم کاشی. سایت‌های زیادی را با هوش مصنوعی ساخته‌ام و چند سال اخیر روی ایجنتیک کردن فرایندهای هوش مصنوعی کار کرده‌ام. اسکیل‌های این سایت همان‌هایی‌اند که خودم هر روز با آن‌ها کار می‌کنم.

بیشتر درباره‌ی من

چیزی که خواندید را همین امروز به دستیارتان بدهید

همه‌ی این اسکیل‌ها با لایسنس دائمی، به‌روزرسانی رایگان برای همیشه و راهنمای نصب برای همه‌ی ابزارها.

تایید شده توسط سپنتا پویا
دیزاین‌سیستم · v1.0.0

ساخت و توسعه‌ی دیزاین‌سیستم فارسی

تجربه‌ی ۲۱۵ کامیت ساخت کاشی در یک اسکیل: از توکن و RTL تا داده‌های ایرانی، دسترس‌پذیری، تست تصویری و انتشار نسخه.

Claude CodeClaude.aiCodexCursorGemini CLI
۱٬۴۹۰٬۰۰۰ تومان۲٬۲۹۰٬۰۰۰