تاریخ فارسی جاوا اسکریپت


چندین ماه پیش افزونه منبع بازی برای تبدیل تاریخ فارسی (تقویم جلالی) به گریگوریان در زبان برنامه نویسی جاوااسکریپت نوشته بودم، تا خیلی راحت بتوان با آن یک تقویم ساخت؛ که با استفاده از تابع سازنده Date جاوا اسکریپت کار می‌کرد. همه داده‌ها را در شی به وجود آمده از کلاس Date جاوا اسکرپت نگهداری می‌نمود و هر تبدیلی که لازم بود را با استفاده از آن انجام می‌شد. اما هیچ وقت فرصت لازم برای مستند کردن، این کتابخانه کم حجم 13 کیلوبایتی برای دوستان پیدا نکردم. که در اینجا بالاخره می خواهم در این داکیومنت نحوه کار با آن را توضیح بدهم. شاید در آینده دوستانی آن را گسترش دادند.


درباره

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

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


کاربرد

ساخت تقویم سمت کاربر - عدم نگرانی برای اعتبارسنجی تقویم جلالی - تبدیل سریع و ساده


شروع به کار

ابتداء فایل سورس برنامه را از آدرس گیت هاب farsidate.ir دریافت کنید. و آن را از حالت فشرده خارج و فایل farsidate-1.0.1.min.js موجود در پوشه dist را در محل مورد نظر خود کپی کنید. فایل را به صفحه وب خودتان پیوند دهید.

نحوه استفاده

نحوه استفاده از این افزونه بسیار ساده هست، تنها کافی هست که هرجا خواستید از تاریخ جلالی استفاده کنید، شی ساخته شده از تابع سازنده Date اصلی جاوا اسکریپت متد fa را فراخوانی کنید. با این فراخوانی تمام محاسبات برروی همان شی ساخته شده در قالب تاریخ جلالی صورت می‌گیرد و زمانی که خواستید محاسبات را برروی همان شی قبلی به گریگوریان انجام دهید از متد norm آن استفاده کنید.

=>fa() => norm() => fa()...

در مثال زیر نحوه استفاده و تبدیل تاریخ سیستم به جلالی آورده شده است.

نکته: لازم نیست که از تاریخ سیستم کاربر استفاده کنید، بلکه به شی Date هر مقدار اولیه یا ثانویه‌ای که خواستید از سمت سرور بدهید و آن را تبدیل کنید.

فراخوانی زنجیره ای

همان طور که در خط اول کد زیر مشاهده می کنید، با فراخوانی متد fa ما به تقویم جلالی شیفت زده ایم، و با فراخوانی متد norm دوباره به تقویم گریگوریان برگشته‌ایم، و این فراخوانی زنجیره‌ای است.

در خط دوم نیز افزودن مقادیر زمانی در قالب تقویم جلالی و سپس تبدیل آن به فرمت استاندارد بخش ISO تاریخ نمایش داده شده است.

متد fa

این متد جهت تبدیل تاریخ گریگوریان به جلالی هست، تا تمام محاسبات بر مبنای تاریخ جلالی انجام شود.

سه شکل فراخوانی دارد:

1- بدون آرگومان ورودی: که از همان داده های تاریخ شی ساخته شده از Date استفاده می کند.

2- با یک آرگومان ورودی: که آرگومان ورودی یک شی ساخته شده از Date تبدیل شده به جلالی است.

نکته: برای استفاده از Date تبدیل شده به گریگوریان یا همان حالت ساده، می توان شی موجود را به سازنده Date یا متدهای اصلی آن بدهید.

3- با سه آرگومان ورودی: که به ترتیب مقدار عددی، سال کامل، ماه بدون صفر و روز است.

نکته: شروع ماه در جاوااسکریپت از صفر است.

متد norm

این متد جهت تبدیل تاریخ جلالی به گریگوریان است.


متد getCacheDate

این متد همانند متد norm هست و در اصل از همان حافظه موقتی شی به وجود آمده اصلی Date استفاده می‌کند.

متد toString

که جهت فرمت بندی خروجی تاریخ تبدیل شده به جلالی استفاده می شود و یک آرگومان ورودی رشته فرمت‌بدنی دارد.

توضیح آرگومان رشته ای ورودی متد toString:


متد clearTime

جهت صفر کردن زمان (ساعت، دقیقه، ثانیه و میکروثانیه) به کار می رود.

متد setTimeToNow

جهت مقداردهی کردن زمان حال سمت کلاینت (ساعت، دقیقه، ثانیه و میکروثانیه) به کار می رود.

متد today

تاریخ جلالی امروز را بازگردانی می کند.

متد setFullYear

جهت مقداردهی سال جلالی کامل به کار می رود.


متد getDaysInMonth

جهت دریافت تعداد روزها در ماه جلالی به کار می رود.

متد startOfMonth

جهت اشاره به شروع ماه جلالی به کار می رود.

متد addDays

افزودن روز جلالی

متد addWeeks

افزودن هفته جلالی


متد addMonths

افزودن ماه جلالی

متد addYears

افزودن سال جلالی

متد startOfWeek

اشاره به شروع هفته جلالی

متد clone

ایجاد یک نمونه شبیه سازی شده جدید از تاریخ جلالی

متد getDaysOfWeek

دریافت تاریخ جلالی روزهای هفته جاری

نکته: هفته جاری را می توان با افزودن روز، ماه، هفته، سال و... تعویض کرد.

متد getDaysOfMonth

دریافت کل روزهای هفته ماه جاری با استفاده از متد getDaysOfWeek مختص هر هفته

متد toFarsiDigits

تبدیل رشته اعداد انگلیسی به فارسی

متد isDate

آیا شی جاری یک تاریخ تبدیل شده به جلالی هست یا خیر

متد toISODate

برای تقویم جلالی و گریگوریان بخش ISO تاریخ را به صورت رشته بر می گرداند.

نکته: برای ذخیره متادیتا کاربرد زیادی دارد.

متدهای دیگر

اکثر متدهای شی Date جاوا اسکرپت