تبدیل تاریخ میلادی به تاریخ شمسی و برعکس در لاراول

تبدیل تاریخ میلادی و شمسی در لاراولحتما برای شما پیش آمده که موقع ساختن یک وب اپلیکیشن با تبدیل تاریخ میلادی به شمسی یا برعکس درگیر شده باشید، و باید بگویم نوشتن یه اسکریپت به زبان php که بتواند این تبدیل هارو برای ما انجام بدهد واقعا کار وقت گیر و سختی هست، تازه اگه کار ما با تاریخ در حد همین تبدیل ساده باشد و اگه بخواهیم یکسری محاسبات هم روی آنها انجام بشود و خیلی کارهای دیگر کار از این هم سخت تر میشود ،که این پکیج فوق العاده میتواند در یک چشم بهم زدن برایمان انجام بدهدبرای حل این مشکل ابتدا به این ادرس لینک میرویم به دو روش میتوانیم پکیج جلالی را نصب کنیم اولی به صورت دستی است که فایل زیپ پکیج را دانلود کرده و در پوشه پروژه خود به پوشه vendor اضافه میکنیدمراحل دانلود پکیج جلالی برای لاراولروش دوم این است که دستور زیر رو در cmd وارد کنید:این دستور نیازمند لاراول ورژن 7 و بالا است $ composer require morilog/jalali:3.*دستور زیر برای لاراول با ورژن >=5 & < 6.0است$ composer require morilog/jalaliسپس طبق دستورات پکیج جلو میرویم ((در پروژه لاراول خود به پوشه config رفته و app.php را باز کرده در بخش Providers خط زیر را در انتها نوشته ها بنویسید.Morilog\Jalali\JalaliServiceProvider::class,سپس در قسمت alias نیز این خط را به انتها اضافه کنید'jDate' => Morilog\Jalali\Facades\jDate::class نکته:توجه داشته باشید اگر پکیج را به صورت دستی وارد پروژه کرده اید چون نام پوشه متفاوت است با روش دوم که همان دستور کمپوزر است به جای Morilog\Jalali باید نام پوشه که jalali-master است را بنویسید))توجه:اگر شما لاراول با ورژن 7 دارید نیازی به انجام کار های بالا ندارید.حال که نصب پکیج تمام شد به پوشه appسپسhttpسپس controller میرویم اول باید یک کنترلر بسازیم به cmd رفته و دستور زیر را مینویسیمphp artisan make:controller نام کنترلرهمانطور که میدانید برای نام کنترلر باید از حتما از کلمه controller در انتهای نام استفاده کنید و اولین حرف کلمات را با حرف بزرگ بنویسید مانند SiteControllerهر زمانی که از پکیجی یا کلاسی استفاده میکنیم باید با دستور use آن را به کنترلر پیوند بدهیم پس دستور زیر را در کنترلر مینویسیمuse morilog/jalali/jdate; سپس دیتابیس را چک کنید که مطمن شوید سطری دارید که در آن تاریخ ثبت شده باشدبعد به پوشه روت ها میرویم و تعریف میکنیم که به فلان ادرس url وقتی رفتیم از فلان کنترلر این فانکشن را اجرا کن با دستورrout::get('/ URL ','نام فانکشن@نام کنترلر ')بعد فانکشنمان را مینویسیم public function user() {$text=auth::user() ->created_at; $date = jDate::forge('$text') ->format('datetime'); echo $date; }البته یادمان نرود که دستور های use برای user و auth را چون در کد ها استفاده کردیم حتما در کنترلر قرار دهیم use user;use auth;در کد های بالا ما تابعی به نام user ساختیم و در آن خواستیم که در دیتا بیس از تیبل user ستون created_at را بخواند ودر text قرار دهد سپس text$ را با jdate تبدیل به شمسی کردیم و در date$ قرار دادیم و با format خواستیم که به ما مدل نمایش تاریخ را به چه صورت نمایش دهد سپس ان را چاپ کردیماگر شما از لاراول 7 استفاده میکنید به جای jdate از کلمه jalalian استفاده کنید کد های نمونه های دیگر نمایش تاریخ برای لاراول 7// the default timestamp is Now $date = \Morilog\Jalali\Jalalian::now() // OR $date = jdate(); // pass timestamps $date = Jalalian::forge(1333857600); // OR $date = jdate(1333857600); // pass human readable strings to make timestamps $date = Jalalian::forge('last sunday'); // get the timestamp $date = Jalalian::forge('last sunday')->getTimestamp(); // 1333857600 // format the timestamp $date = Jalalian::forge('last sunday')->format('%B %d، %Y'); // دی 02، 1391 $date = Jalalian::forge('today')->format('%A, %d %B %y'); // جمعه، 23 اسفند 97 // get a predefined format $date = Jalalian::forge('last sunday')->format('datetime'); // 1391-10-02 00:00:00 $date = Jalalian::forge('last sunday')->format('date'); // 1391-10-02 $date = Jalalian::forge('last sunday')->format('time'); // 00:00:00 // get relative 'ago' format $date = Jalalian::forge('now - 10 minutes')->ago() // 10 دقیقه پیش // OR $date = Jalalian::forge('now - 10 minutes')->ago() // 10 دقیقه پیشمنبع:https://github.com/morilog/jalaliازلینک بالا میتوانید توضیحات و مثالهای بیشتر از این پکیج فوق العاده رو پیدا کنید