toka
4 سال پیش توسط toka مطرح شد
6 پاسخ

نمایش تاریخ شمسی

سلام دوستان
چطور میتونم تاریخ میلادی لیستی از سفارشات رو که از طریق ajax از دیتابیس گرفتم و در جدول قرار دادم رو تبدیل به شمسی کنم .
نمایش تاریخ برای مدیریت باید به صورت شمسی باشد .
(در چه مرحله و کجا باید این تبدیل تاریخ رو انجام بدم)؟


ثبت پرسش جدید
سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
2

خب چون داری اطلاعات رو کوئری میزنی باس از resource استفاده کنی (میتونی تویی مدل خودتون toArray رو بازنویسی کنید ولی پیشنهاد میکنم از resource استفاده کنید)
اول کامند زیر رو میزنی که یک ریسورس برات ایجاد بشه

php artisan make:resource OrderResource

بعدش تویی مسیر app\Http\Resources یک فایل به نام OrderResource وجود داره که تویی فاکنش toArray شما میایی داده هات رو overwrite میکنی که اونجا قبل از اینکه فیلد created_at بازگشت داده بشه با توابع verta تبدیل میکنی مثال میشه:

    public function toArray($request)
    {
        return [
            // فیلدهای دیگه ات رو هم مینویسی بعلاوه این تاریخ زیری
            'created_at' => verta($this->created_at),
        ];
    }

کد تویی کنترلرتون اینجوری باس استفاده کنی

use App\Http\Resources\OrderResource;

public function getOrders(){
    $orders=Order::whereDate('created_at',Carbon::today())->with('customer')->orderBy('created_at','DESC')->get();
    return new OrderResource($orders);
}

smart
@smartgarden2016 4 سال پیش مطرح شد
0

سلام. من برای اینکار معمولا از پکیج verta استفاده میکنم و خوب هم هست. تاریخ ها رو بصورت میلادی ذخیره میکنم و بعد با این پکیج تبدیل به شمسی میکنم. از این پکیج هم میشه توی controller هم توی view استفاده کرد.


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش مطرح شد
0

(در چه مرحله و کجا باید این تبدیل تاریخ رو انجام بدم)؟

در کنترلر همانجایی که ایجکس رو ریترن میکنی


toka
@shahin8118 4 سال پیش مطرح شد
0

@juza66
ممنون از راهنماییتون .
من از پکیج ورتا استفاده می کنم - امکانش هست یه نمونه کد از تبدیل تاریخ برام بفرستین .


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش مطرح شد
0

کد کنترلرت رو بذار برات اصلاح کنم


toka
@shahin8118 4 سال پیش مطرح شد
0

@juza66

 public function getOrders(){

                $orders=Order::whereDate('created_at',Carbon::today())->with('customer')->orderBy('created_at','DESC')->get();

        return $orders;

    }

سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 4 سال پیش آپدیت شد
2

خب چون داری اطلاعات رو کوئری میزنی باس از resource استفاده کنی (میتونی تویی مدل خودتون toArray رو بازنویسی کنید ولی پیشنهاد میکنم از resource استفاده کنید)
اول کامند زیر رو میزنی که یک ریسورس برات ایجاد بشه

php artisan make:resource OrderResource

بعدش تویی مسیر app\Http\Resources یک فایل به نام OrderResource وجود داره که تویی فاکنش toArray شما میایی داده هات رو overwrite میکنی که اونجا قبل از اینکه فیلد created_at بازگشت داده بشه با توابع verta تبدیل میکنی مثال میشه:

    public function toArray($request)
    {
        return [
            // فیلدهای دیگه ات رو هم مینویسی بعلاوه این تاریخ زیری
            'created_at' => verta($this->created_at),
        ];
    }

کد تویی کنترلرتون اینجوری باس استفاده کنی

use App\Http\Resources\OrderResource;

public function getOrders(){
    $orders=Order::whereDate('created_at',Carbon::today())->with('customer')->orderBy('created_at','DESC')->get();
    return new OrderResource($orders);
}

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام