یک تاریخ،
به چند تقویم.

با تاریخ‌های میلادی، شمسی و قمری در PHP کار کنید. تبدیل، نمایش و محاسبه تاریخ با یک رابط یکپارچه، بدون تغییر مقدار اصلی.

composer require eram/daynum:^1.0@beta

یک روز، چند روایت

همان روز، در تقویم‌های مختلف.

نمونه‌های اجراشده با PHP
میلادی
چهارشنبه۰۸

آوریل ۲۰۲۶

gregorian()
شمسی
چهارشنبه۱۹

فروردین ۱۴۰۵

jalali()
قمری · ام‌القری
چهارشنبه۲۰

شوال ۱۴۴۷

hijri()
2026-04-08

یک مقدار مشترک برای تاریخ

مشاهده کد PHP
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'); // چهارشنبه ۱۹ فروردین ۱۴۰۵

با انتخاب هر تاریخ، خروجی اجراشده با Daynum 1.0.0-beta.4 را می‌بینید. این نمونه‌ها PHP را در مرورگر اجرا نمی‌کنند.

بیشتر از تبدیل تاریخ

برای تاریخ‌هایی که برنامه شما با آن‌ها کار می‌کند.

شهریور۳۱۱۴۰۵
۱ ماه بعد
مهر۳۰۱۴۰۵

یک ماه بعد، با حساب همان تقویم.

شهریور ۳۱ روز دارد و مهر ۳۰ روز. با افزودن یک ماه شمسی، Daynum آخرین روز معتبر ماه را انتخاب می‌کند و تاریخ اصلی تغییر نمی‌کند.

مشاهده کد PHP
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/31
تاریخ واردشده در فرم شما
۱۴۰۵/۰۱/۱۹
2026-04-08میلادی
۱۴۰۵/۰۷/۳۱مهر روز ۳۱ نداردnull

ورودی فارسی را بخوانید؛ تاریخ نامعتبر را نپذیرید.

تاریخ را با قالب مشخص و ارقام فارسی بخوانید. tryParseExact برای تاریخ نامعتبر null برمی‌گرداند تا از کاربر بخواهید ورودی را اصلاح کند.

مشاهده کد PHP
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چند تقویم با یک رابط در PHP

میلادی، شمسی و دو نوع تقویم قمری. مقدارهای تغییرناپذیر، بدون وابستگی اجرایی به بسته‌های Composer یا افزونه intl.

محاسبات بر اساس ساعت محلی است. برای زمان سپری‌شده بین مناطق زمانی از PHP استفاده کنید.
morilog/jalaliبرنامه‌ای با تمرکز بر تقویم شمسی

رابط تغییرناپذیر Jalalian برای تاریخ شمسی، با تبدیل به Carbon و DateTime و برعکس.

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

توسعه DateTime در PHP، با محاسبات تاریخ، خواندن عبارت‌های نسبی و خروجی چندزبانه. CarbonImmutable هم در دسترس است.

وقتی به کار با منطقه زمانی و چند تقویم نیاز دارید، می‌تواند کنار Daynum استفاده شود.

بر اساس مستندات پیوندشده پروژه‌ها، بررسی‌شده در ۸ اکتبر ۲۰۲۶. این مقایسه درباره کاربرد و روش کار است، نه سرعت.

از morilog/jalali می‌آیید؟ راهنمای مهاجرت را بخوانید

از یک تاریخ آشنا شروع کنید.

Daynum را نصب کنید، یک تقویم انتخاب کنید و در پروژه خود امتحان کنید.

راهنمای شروع استفاده
پیش‌نیاز
PHP 8.1+
بسته‌های موردنیاز در اجرا
ندارد
مجوز
MIT
نسخه
1.0.0-beta.4