راکت

شمسی کردن تاریخ در بوت استرپ

13 پاسخ

سلام. من یه فیلدی داخل فرم دارم که کاربر باید تاریخ به همراه ساعت رو وارد کنه و برای همین از بوت استرپ استفاده کردم . ولی یه مشکلی وجود داره اونم میلادی بودن تقویم بوت استرپ هست. چجوری تقویم بوت استرپ رو شمسی کنیم؟ و از همه مهمتر من میخام فقط هنگام نمایش اون تقویم بوت استرپ شمسی باشه ولی هنگام انتخاب تاریخ بصورت میلادی داخل فرم ثبت بشه.

احمد
احمد
@ahmad316948
ثبت پرسش جدید

پاسخ‌ها

13
moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

سلام
از پکیج persian date picker می تونید استفاده کنید.
@ahmad316948

Saman
Saman
@samanzdev

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

سلام
می تونید از این پکیج هم استفاده کنید
https://github.com/Mds92/MD.BootstrapPersianDateTimePicker
@ahmad۳۱۶۹۴۸

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

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

سلام علیکم
نمیدونم منظورتون رو درست متوجه شدم یا خیر .
ولی اگر درست متوجه شده بودم این مقاله به دردتون میخوره :
https://barnamenevisan.org/Articles/Article6475.html

احمد
احمد
@ahmad316948

@mohaligateway
@samanzdev
@gomnam
خوب من میخام تاریخ و ساعت رو که این کتابخانه ها بصورت شمسی خروجی دادن رو هنگام ذخیره کردن بصورت میلادی ذخیره کنم.
من از کتابخانه morilog jalali استفاده می کنم.

محمد امیری
محمد امیری
@mohammadeng3731

تخصص: backend coder

سلام.اگه میخوای به شمسی تبدیل کنی تاریخ میلادی رو داریم:

console.log(new Date(yourDate).toLocaleDateString('fa-IR'))

و برعکس :

‍‍‍```
console.log(new Date(yourDate).toLocaleDateString('en-US'))

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

سلام
اول از همه این مورد رو باید مد نظر داشته باشید که این پکیج اعداد را به صورت فارسی به سمت سرور می فرسته باید ابتدا اعداد فارسی رو به انگلیسی تبدیل کنید بعد با استفاده از قطعه کد زیر باید یکبار زمان رو به timestamp تبدیل کنید و در database ذخیزه کنید.

protected function dateConverter($date)
    {
        $date = collect(explode("/", $date));
        $converted = $date->map(function($item) {
            return intval($this->converter($item)); 
        });
        $jalalian = new Jalalian($converted[0], $converted[1], $converted[2]);
        $timestamps = $jalalian->getTimestamp();
        return Carbon::createFromTimestamp($timestamps);
    }

@ahmad316948

علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

سلام مجدد
پس یعنی شما میخواهید کاربر تاریخ را به صورت شمسی وارد کنه ، و بعد به صورت میلادی ذخیره کنید ؟
قبل از این مسئله مشکل شما در میلادی بودن تقویم بوت استرپ حل شد ؟ اگر حل نشد لینک های زیر رو نگاهی بیندازید ، بسیار هم زیبا هستند :
توضیح تصویر رو وارد کنید
https://github.com/babakhani/pwt.datepicker
دیت پیکر شمسی در بوت استرپ

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

احمد
احمد
@ahmad316948

@mohaligateway
سلام چجوری اعداد فارسی رو به انگلیسی تبدیل کنم؟

احمد
احمد
@ahmad316948

@gomnam
سلام این پکیج ساعت رو به همراه تاریخ پشتیبانی نمیکنه

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

با این تابع داخل php

function convert($string) {
    $persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
    $arabic = ['٩', '٨', '٧', '٦', '٥', '٤', '٣', '٢', '١','٠'];

    $num = range(0, 9);
    $convertedPersianNums = str_replace($persian, $num, $string);
    $englishNumbersOnly = str_replace($arabic, $num, $convertedPersianNums);

    return $englishNumbersOnly;
}

@ahmad316948

احمد
احمد
@ahmad316948

@mohaligateway
من به این تابع اعداد فارسی رو پاس دادم ولی خروجی تابع بازم فارسیه

 $string = '۱۴۰۰-۰۳-۲۴ ۱۶:۱۳:۰۷';
        $date = $this->convert($string);
         return $date;

خروجی تابع: ۱۴۰۰-۰۳-۲۴ ۱۶:۱۳:۰۷

moha li
moha li
@mohaligateway

تخصص: توسعه دهنده لاراول و Vue

ببینید اعداد به صورت string هست یا integer ؟
و همچنین یه بار var_dump بگیرید. جوری که فونت روی اعداد اثر نداشته باشه.
@ahmad316948

احمد
احمد
@ahmad316948

اعداد بصورت string هست
@mohaligateway

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

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