arad
3 سال پیش توسط arad مطرح شد
7 پاسخ

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

با سلام .
می خوام با استفاده از کتابخانه jdf تاریخ میلادی رو به شمسی تبدیل کنم که این کد php رو دارم

public function registerMarkupTags()
    {
        return [
            'filters' => [
                'gregorian_to_jalali' => function($gDate){
                    return gregorian_to_jalali($gDate->format('y'),$gDate->format('m'),$gDate->format('d'),'/');
                },
                'jdate' => function ($gDate,$filterSte='Y/m/d - H:i:s') {
                    return jdate($filterSte, $gDate->getTimestamp());
                }    
            ]
        ];
    }

و از اون طرف توی صفحه این جوری گفتم تاریخ رو نشون بده

 {{ post.published_at is empty ? "" : post.published_at|date("m/d/Y")|jdate("m/d/Y") }}

ولی خب خطا میده که Call to a member function getTimestamp() on string
میشه راهنماییم کنید که چه جوری براش تعریف کنم که در قالب تاریخ و درست بگیره مقادیر رو ؟


ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام.
برای انجام اینکار همانطور که دوستمون @Rp76 گفتن میتونید از پکیج Verta استفاده کنید.
من یه مثال میزنم تا بهتر متوجه بشید.
بعد از نصب پکیج شما باید مراحل زیر رو انجام بدین.
فرض کنید ما یه سایت خبری داریم و میخوایم تاریخ ثبت مقاله رو نمایش بدیم، خب فیلدی که در دیتابیس تاریخ ثبت رو به میلادی نمایش میده
created_at می باشد. برای تبدیل این تاریخ شما باید داخل مدل مربوطه که برای مثال اینجا میشه Article یه فانکشن تعریف کنید، که میشه به صورت زیر:

public function getCreatedAtJalali() {
    return verta($this->created_at)->format('y/m/d');
}

سپس داخل بلید خود به صورت زیر بنویسید.

{{ $article->getCreatedAtJalali() }}

امیدوارم مفید بوده باشه.
موفق باشید.


رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 3 سال پیش مطرح شد
0

سلام وقتتون بخیر!

توی لاراول چرا از پکیج Verta استفاده نمی‌کنید!


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

سلام
توی لاراول از دیگر تبدیل کنندگان استفاده کنید


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

مثل پکیج جلالی و غیره


arad
@aaradho27 3 سال پیش مطرح شد
0

اگه امکانش هست برای رفع این مورد راهنماییم کنید


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام.
برای انجام اینکار همانطور که دوستمون @Rp76 گفتن میتونید از پکیج Verta استفاده کنید.
من یه مثال میزنم تا بهتر متوجه بشید.
بعد از نصب پکیج شما باید مراحل زیر رو انجام بدین.
فرض کنید ما یه سایت خبری داریم و میخوایم تاریخ ثبت مقاله رو نمایش بدیم، خب فیلدی که در دیتابیس تاریخ ثبت رو به میلادی نمایش میده
created_at می باشد. برای تبدیل این تاریخ شما باید داخل مدل مربوطه که برای مثال اینجا میشه Article یه فانکشن تعریف کنید، که میشه به صورت زیر:

public function getCreatedAtJalali() {
    return verta($this->created_at)->format('y/m/d');
}

سپس داخل بلید خود به صورت زیر بنویسید.

{{ $article->getCreatedAtJalali() }}

امیدوارم مفید بوده باشه.
موفق باشید.


arad
@aaradho27 3 سال پیش مطرح شد
0

ممنون از لطفتون.


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

@aaradho27
اگر به جواب رسیدین به عنوان بهترین پاسخ انتخاب کنید تا دوستان دیگه هم استفاده کنن.
تشکر از شما.


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

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