راکت
حل شده

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

9 پاسخ

با سلام به همه.
من تاریخ رو توی دیتابیس شمسی نگه میدارم به صورت 2021-07-26 و موقع نمایش و ذخیره با پکیج ورتا اون رو تبدیل میکنم .
حالا مشکلم اینه که میخوام تاریخ رو بصورت 1400/05/17 به view م بفرستم و نمیتونم . یعنی نمیدونم چیکار باس بکنم .

public function edit(Request $request, $id)
    {
        if (intval($id)) {
            $productEditItem = ProductHeader::find($id);
            return response()->json([
                'status' => 200,
                'productEditItem' => $productEditItem,
            ]);
        }
    }

چون سمت view یه تایم پیکر دارم که باید تاریخ رو به فرمت 1400/05/17 بهش پاس بدم .

ثبت پرسش جدید

پاسخ‌ها

9
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

درود

شما آیتمی رو که داری ادیت میکنی داری دیگه -> متغیر productEditItem
کافیه فیلد created_at رو بگیری و با وررتا تبدیلش کنی:

$jalaliDate = verta($productEditItem->created_at)->format('Y/m/d');

حالا کافیه متغیر jalaliDate رو به ویوت پاس بدی


۱ نکته دیگه اینکه میتونی از Route Model Binding هم استفاده کنی:

public function edit(Request $request, ProductHeader $productItem)
    {
    $jalaliDate = verta($productEditItem->created_at)->format('Y/m/d');
    return response()->json([
        'status' => 200,
        'productEditItem' => $productEditItem,
        'jalaliDate' => $jalaliDate 
    ]);

    }

فقط دقت کن که اسم متغیر productItem باید با اسم وایلدکارد در Route ها یکی باشه

سعید
سعید
@saeed.amiri7676

تخصص: برنامه نویس

سلام از این پکیج استفاده کنید داکیومنت کاملی هم داره این کار که شما میخواهید رو هم انجام میده

https://github.com/morilog/jalali

jafar
jafar
@jafarpalideh

ممنون بابت پاسختون . ولی جواب بنده این نبود .
من از ورتا استفاده میکنم دوست خوبم .
میخواستم بدونم چطور میتونم تاریخ رو تبدیل کنم و ارسال کنم سمت ویو.
البته هر پکیج دیگه هم استفاده کنم همین موضوع رو دارم .

شاید پاسخ شما همین‌جا باشد

محمدحسن فرهادی
محمدحسن فرهادی
@farhadi

تخصص: علاقه مند به کد نویسی

@ali.bayat
مهندس من ازین پکیج استفاده میکنم ولی به طرز عجیبی تاریخ ها همه درسته ولی ساعت 00:00 میخوره. دلیلشو میدونید؟

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@farhadi
با تنظیمات پیش فرض خود پکیج، من این چنین مشکلی نداشتم.
به چه شکل از متد format استفاده میکنی؟

محمدحسن فرهادی
محمدحسن فرهادی
@farhadi

تخصص: علاقه مند به کد نویسی

@ali.bayat الان دیدم بدون پکیج جلالی هم تایم ها 00:00 میزنه!
ممکنه چون دارم با seeder جدول پر میکنم این اتفاق بیفته؟

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@farhadi

اگر توی دیتابیس هم زمان نداری، خیلی طبیعیه که معادل فارسیش هم زمان نداشته باشه..
البته ۰۰:۰۰ میشه اولین دقیقه از شبانه روز که احتمالش هست از همون Seeder ها باشه

با تینکر یک یوزر جدید بساز و تستش کن

alireza
alireza
@alighdev

تخصص: توسعه بک اند وب , برنامه نویس

با پکیج ورتا کار نکردم ولی میتونید از پکیج
https://github.com/morilog/jalali

استفاده کنید نصبش که اسونه داخل سایت هم نوشته

استفاده ازش به صورت زیادی هست ولی برای چیزی که شما میخوای بعد از نصب اون پکیج اینجوری میشه

{{ jdate($article->created_at)->format('%Y/%m/%d') }}

@jafarpalideh

jafar
jafar
@jafarpalideh

حالا من سمت ویو تاریخ رو شمسی و بصورت 1400/05/19 میگیرم .
چطور با پکیج ورتا میتونم به صورت میلادی (09-08-2021) ذخیره کنم ؟ کاری که خودم کردم اینه و جواب میده . ولی حتما راه بهتر و راحت تری هم هست .

$product_date = $request->input('product_date');
        $dateAll = explode('/', $product_date);
        $y = $dateAll[0];
        $m = $dateAll[1];
        $d = $dateAll[2];
        $product_date = Verta::getGregorian($y, $m, $d);
        $yg = $product_date[0];
        $mg = $product_date[1];
        $dg = $product_date[2];
        $product_date = $yg . "-" . $mg . "-" . $dg;

@ali.bayat

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

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