آوریل ۲۰۲۶
gregorian()با تاریخهای میلادی، شمسی و قمری در PHP کار کنید. تبدیل، نمایش و محاسبه تاریخ با یک رابط یکپارچه، بدون تغییر مقدار اصلی.
composer require eram/daynum:^1.0@betaیک روز، چند روایت
آوریل ۲۰۲۶
gregorian()فروردین ۱۴۰۵
jalali()شوال ۱۴۴۷
hijri()2026-04-08یک مقدار مشترک برای تاریخ
use Eram\Daynum\CivilDateTime;
$date = CivilDateTime::fromGregorian(2026, 4, 8);
$date->gregorian()->format('Y/m/d'); // 2026/04/08
$date->jalali()->format('Y/m/d'); // 1405/01/19
$date->hijri()->format('Y/m/d'); // 1447/10/20
$date->jalali()->withLocale('fa')->withDigits('persian')
->format('l j F Y'); // چهارشنبه ۱۹ فروردین ۱۴۰۵مارس ۲۰۲۶
gregorian()فروردین ۱۴۰۵
jalali()شوال ۱۴۴۷
hijri()2026-03-21یک مقدار مشترک برای تاریخ
use Eram\Daynum\CivilDateTime;
$date = CivilDateTime::fromGregorian(2026, 3, 21);
$date->gregorian()->format('Y/m/d'); // 2026/03/21
$date->jalali()->format('Y/m/d'); // 1405/01/01
$date->hijri()->format('Y/m/d'); // 1447/10/02
$date->jalali()->withLocale('fa')->withDigits('persian')
->format('l j F Y'); // شنبه ۱ فروردین ۱۴۰۵سپتامبر ۲۰۲۶
gregorian()شهریور ۱۴۰۵
jalali()ربیعالثانی ۱۴۴۸
hijri()2026-09-22یک مقدار مشترک برای تاریخ
use Eram\Daynum\CivilDateTime;
$date = CivilDateTime::fromGregorian(2026, 9, 22);
$date->gregorian()->format('Y/m/d'); // 2026/09/22
$date->jalali()->format('Y/m/d'); // 1405/06/31
$date->hijri()->format('Y/m/d'); // 1448/04/11
$date->jalali()->withLocale('fa')->withDigits('persian')
->format('l j F Y'); // سهشنبه ۳۱ شهریور ۱۴۰۵با انتخاب هر تاریخ، خروجی اجراشده با Daynum 1.0.0-beta.4 را میبینید. این نمونهها PHP را در مرورگر اجرا نمیکنند.
بیشتر از تبدیل تاریخ
شهریور ۳۱ روز دارد و مهر ۳۰ روز. با افزودن یک ماه شمسی، Daynum آخرین روز معتبر ماه را انتخاب میکند و تاریخ اصلی تغییر نمیکند.
use Eram\Daynum\CivilDateTime;
$date = CivilDateTime::fromJalali(1405, 6, 31);
$next = $date->jalali()->addMonths(1);
$next->jalali()->format('Y/m/d'); // 1405/07/30
$date->jalali()->format('Y/m/d'); // 1405/06/312026-04-08میلادی۱۴۰۵/۰۷/۳۱مهر روز ۳۱ نداردnullتاریخ را با قالب مشخص و ارقام فارسی بخوانید. tryParseExact برای تاریخ نامعتبر null برمیگرداند تا از کاربر بخواهید ورودی را اصلاح کند.
use Eram\Daynum\Calendar\Jalali\JalaliView;
$date = JalaliView::tryParseExact('۱۴۰۵/۰۱/۱۹', 'Y/m/d');
$date?->gregorian()->format('Y-m-d'); // 2026-04-08
JalaliView::tryParseExact('۱۴۰۵/۰۷/۳۱', 'Y/m/d'); // nullجزئیات مهماند
تقویم و زبان موردنیاز برنامه را انتخاب کنید. محاسبات تقویمی را از محاسبه زمان سپریشده جدا نگه دارید.
هفت زبان همراه، از جمله فارسی، دری و عربی. شکل ارقام را جداگانه انتخاب کنید.
امالقری سالهای ۱۳۰۰ تا ۱۶۰۰ قمری را پوشش میدهد. قمری حسابی تقویمی جداست؛ Daynum بدون اطلاع بین آنها جابهجا نمیشود.
Daynum با ساعت محلی محاسبه میکند. برای تغییر ساعت فصلی و زمان سپریشده، از toDateTimeImmutable() یا timestamp استفاده کنید.
یک مقایسه کوتاه
| کتابخانه | مناسب برای | روش کار |
|---|---|---|
| Daynum | چند تقویم با یک رابط در PHP | میلادی، شمسی و دو نوع تقویم قمری. مقدارهای تغییرناپذیر، بدون وابستگی اجرایی به بستههای Composer یا افزونه intl. محاسبات بر اساس ساعت محلی است. برای زمان سپریشده بین مناطق زمانی از PHP استفاده کنید. |
| morilog/jalali | برنامهای با تمرکز بر تقویم شمسی | رابط تغییرناپذیر Jalalian برای تاریخ شمسی، با تبدیل به Carbon و DateTime و برعکس. گزینهای متمرکز برای زمانی که به تقویم شمسی نیاز دارید. |
| Carbon | مناطق زمانی و کارهای روزمره تاریخ و ساعت | توسعه DateTime در PHP، با محاسبات تاریخ، خواندن عبارتهای نسبی و خروجی چندزبانه. CarbonImmutable هم در دسترس است. وقتی به کار با منطقه زمانی و چند تقویم نیاز دارید، میتواند کنار Daynum استفاده شود. |
بر اساس مستندات پیوندشده پروژهها، بررسیشده در ۸ اکتبر ۲۰۲۶. این مقایسه درباره کاربرد و روش کار است، نه سرعت.
از morilog/jalali میآیید؟ راهنمای مهاجرت را بخوانیدDaynum را نصب کنید، یک تقویم انتخاب کنید و در پروژه خود امتحان کنید.
راهنمای شروع استفاده