پلاگینی ساده و قدرتمند برای افزودن تابع تبدیل تاریخ میلادی به شمسی در قالبهای تایپچو
پلاگین دستیار تاریخ شمسی یک ابزار کمکی برای قالبهای تایپچو است که تابع jalali_date را در دسترس قالبسازان قرار میدهد. با استفاده از این تابع میتوانید هر تاریخ میلادی (تایماستمپ) را به تاریخ شمسی با فرمت دلخواه تبدیل کرده و نمایش دهید. نسخه ۱.۳ این پلاگین با افزودن پشتیبانی از منطقه زمانی، تنظیمات پیشرفته و بهبود کارایی تجربهای حرفهایتر را فراهم کرده است.
ویژگیهای جدید در نسخه ۱.۳
✨ پشتیبانی از منطقه زمانی (Timezone)
- امکان فعالسازی و انتخاب منطقه زمانی از جمله تهران، کابل، دوشنبه و UTC.
- تنظیم خودکار منطقه زمانی برای تمام تاریخهای نمایش داده شده و نظرات.
⚙️ تنظیمات پیشرفته در پنل مدیریت
- فعال/غیرفعال کردن منطقه زمانی.
- انتخاب منطقه زمانی از بین گزینههای پرکاربرد.
- نمایش یا مخفیسازی ثانیه.
- تعیین فرمت پیشفرض تاریخ (قابل تغییر در تابع).
🕒 پشتیبانی از نمایشگرهای زمان
- نمایش ق.ظ / ب.ظ به جای AM/PM.
- نمایش نام روزهای هفته به فارسی (مثلاً «شنبه»).
- نمایش تکحرف روز هفته برای طراحی فشرده.
📦 سازگاری کامل با نظرات
- اعمال منطقه زمانی بر روی زمان درج نظرات برای نمایش یکپارچه.
🔧 بهبود عملکرد و کاهش خطا
- استفاده از کلاس DateTime برای مدیریت دقیقتر زمان.
- بررسی معتبر بودن منطقه زمانی انتخاب شده.
نیازمندیها
- تایپچو نسخه ۱.۲ یا بالاتر
- PHP نسخه ۷.۲ یا بالاتر
- تابعهای تاریخ PHP (فعال در اکثر سرورها)
تنظیمات پلاگین
پس از فعالسازی، با کلیک روی تنظیمات در کنار نام پلاگین میتوانید گزینههای زیر را شخصیسازی کنید:
| گزینه | توضیحات |
|---|---|
| فعالسازی منطقه زمانی | با انتخاب «فعال»، منطقه زمانی انتخاب شده بر تمام تاریخها اعمال میشود. |
| منطقه زمانی | انتخاب از بین تهران، کابل، دوشنبه یا UTC. در صورت تمایل میتوانید منطقه دیگری را در کد اضافه کنید. |
| نمایش ثانیه | اگر فعال باشد، ثانیه (s) در فرمتهای حاوی ثانیه نمایش داده میشود. |
| فرمت پیشفرض تاریخ | فرمت پیشفرضی که اگر در تابع jalali_date فرمت وارد نشود، از این مقدار استفاده میگردد. (پیشفرض: Y/m-d H:i) |
نحوه استفاده در قالب
پلاگین یک تابع عمومی به نام jalali_date در اختیار قالب قرار میدهد. این تابع دو آرگومان دارد:
jalali_date( string $format [, int $timestamp = null ] ) : string$format: رشته فرمت مشابه فرمتهایdateدر PHP با اضافه شدن برخی کاراکترهای خاص (مطابق جدول پایین).$timestamp(اختیاری) : یک تایماستمپ یونیکس. اگر وارد نشود، زمان فعلی (اکنون) در نظر گرفته میشود.
فرمتهای پشتیبانی شده
این تابع از تمام کاراکترهای استاندارد date پشتیبانی میکند. علاوه بر آن، کاراکترهای ویژه زیر برای تاریخ شمسی اضافه شدهاند:
| کاراکتر | توضیحات | مثال |
|---|---|---|
| F | نام کامل ماه فارسی | فروردین |
| Y | سال چهار رقمی شمسی | ۱۴۰۴ |
| y | سال دو رقمی شمسی | ۰۴ |
| m | ماه دو رقمی (با صفر) | ۰۳ |
| n | ماه بدون صفر | ۳ |
| d | روز دو رقمی (با صفر) | ۰۵ |
| j | روز بدون صفر | ۵ |
| l | نام کامل روز هفته فارسی | سهشنبه |
| D | تکحرف روز هفته (فقط حرف اول) | س |
| H | ساعت ۲۴ ساعته (با صفر) | ۱۴ |
| h | ساعت ۱۲ ساعته (با صفر) | ۰۲ |
| i | دقیقه (با صفر) | ۳۰ |
| s | ثانیه (با صفر) – در صورت فعال بودن نمایش ثانیه | ۱۵ |
| A | قبل از ظهر/بعد از ظهر (حروف بزرگ) | ب.ظ |
| a | قبل از ظهر/بعد از ظهر (حروف کوچک) | ب.ظ |
توجه: کاراکترهایAوaهر دو «ق.ظ» یا «ب.ظ» را برمیگردانند و تفاوتی در خروجی ندارند.
مثالهای کاربردی
نمایش تاریخ انتشار پست
<?php echo jalali_date('d F Y', $this->date->timeStamp); ?>خروجی: ۲۵ فروردین ۱۴۰۴
نمایش تاریخ با ساعت
<?php echo jalali_date('Y/m/d - H:i', $this->date->timeStamp); ?>خروجی: ۱۴۰۴/۰۱/۲۵ - ۱۴:۳۰
نمایش روز هفته و نام ماه
<?php echo jalali_date('l, d F Y', $this->date->timeStamp); ?>خروجی: سهشنبه، ۲۵ فروردین ۱۴۰۴
نمایش زمان کامنت
<?php echo jalali_date('j F Y در ساعت H:i', $this->date->timeStamp); ?>خروجی: ۵ اردیبهشت ۱۴۰۴ در ساعت ۱۰:۱۵
نمایش تکحرف روز
<?php echo jalali_date('D', $this->date->timeStamp); ?>خروجی: س (برای سهشنبه)
تغییرات نسخهها
نسخه ۱.۳ (۱۴۰۴)
- افزودن پشتیبانی از منطقه زمانی با انتخاب از لیست پرکاربرد (تهران، کابل، دوشنبه، UTC)
- اضافه شدن تنظیمات به پنل مدیریت (فعالسازی منطقه زمانی، نمایش ثانیه، فرمت پیشفرض)
- پشتیبانی از نمایش «ق.ظ/ب.ظ» به جای AM/PM
- اضافه شدن نام روزهای هفته به فارسی (l, D)
- اعمال منطقه زمانی بر روی نظرات برای نمایش یکسان
- بهبود عملکرد با استفاده از DateTime
- رفع باگهای محاسباتی در سالهای کبیسه
هنوز نظری ثبت نشده است
شما اولین نفری هستید که نظر میدهید.