سلام دوستان من میخوام تاریخی که درون جدول های دیتابیس داخل فیلد updated-at ذخیره میشه رو موقع select به صورت تاریخ شمسی دربیارم و ازش استفاده کنم چطوری میتونم این کار رو انجام بدم،خواهشا راهنمایی کنید.
@saeedlovelorn2
میتونی پکیج morilog/jalali رو نصب کنی ازش استفاده کنی
میشه یکم بیشتر توضیح بدین.چطوری باید مقدار updated-at رو درون متدهای این پکیج قرار بدم و اینکه به وسیله ی این پکیج میشه توی ویو تاریخ رو تبدیل کرد یا باید تو کنترلر این کار رو انجام بدم؟
شاید پاسخ شما همینجا باشد
بله میتونید توی ویو هم ازش استفاده کنید . مستندات پیکج رو ببنید میتونید به چندین قالب مختلف نمایش بدید .
ولی بنظر من بهتره از جاوا اسکریپت استفاده کنید . به این صورت که از یک کتابخونه تبدیل تاریخ میلادی به شمسی استفاده کنید . و یک input اصلی رو مخفی کنید و جاش یک input با جاوا اسکریپت تولید کنید که تاریخ رو به شمسی نشون بده . تا موقع ارسال هم دوباره نخواین که به میلادی تبدیل کنید و توی دیتابیس به مشکل نخورید
مطابق مستندات پکیج پیش رفتم به خوبی جواب داد خیلی ممنونم
درود...
اگر با ویو جی اس کار می کنید از وابستگی تاریخ شمسی moment-jalaali استفاده کنید:
کد فراخوانی زیر:
{{ moment(user.created_at).format('jYYYY/jM/jD') }}
پیوند زیر:
https://github.com/jalaali/moment-jalaali
به نظرم بهترین پکیج برایتاریخ شمسی پکیج verta هستش :
منظور از Eloquent: Accessor اقای @ali.bayat لینک زیر هستش
https://laravel.com/docs/6.x/eloquent-mutators#defining-an-accessor
که نحوه به کارگیری خیلی ساده است در مدل مورد نظرتون قبل از اینکه فیلد UpdatedAt رو صدا کنی کد زیر رو مینویسی و درون تابع UpdatedAt رو شمسی میکنی و هرکجا فیلد UpdatedAt صدا زده شده بصورت شمسی نمایش داده میشه.
public function getUpdatedAtAttribute()
{
///کد تبدیل تاریخ
$v = new Verta($this->updated_at);
return $v;
}بعد از نصب پکیج Verta ، در مدلی( مثلا Post ) که قراره استفاده بشه این پکیج رو use میکنیم:
use Hekmatinasser\Verta\Verta;
و تابع زیر رو در مدل مینویسیم:
public function getCreatedAtAttribute($value) {
$v = new Verta($value);
return $v;
}
بعد میتونیم در کنترلر یا ویو بصورت زیر استفاده کنیم:
echo $post->created_at;