سیما نوری
سیما نوری
خواندن ۴ دقیقه·۴ سال پیش

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

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

حتما برای شما پیش آمده که موقع ساختن یک وب اپلیکیشن با تبدیل تاریخ میلادی به شمسی یا برعکس درگیر شده باشید، و باید بگویم نوشتن یه اسکریپت به زبان 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

ازلینک بالا میتوانید توضیحات و مثالهای بیشتر از این پکیج فوق العاده رو پیدا کنید

شاید از این پست‌ها خوشتان بیاید