مهرداد
4 سال پیش توسط مهرداد مطرح شد
7 پاسخ

ذخیره شدن تاریخ در دیتابیس بصورت میلادی

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


ثبت پرسش جدید
علی
@Alitavil 4 سال پیش مطرح شد
0

بهتر هست به صورت unixtimestamp ذخیره کنی بعد به هر شکلی خواستی می تونی نمایش بدی چه شمسی چه میلادی و چه .... اگر هم از لاراول استفاده می کنی از کلاس کربن (Carbon) می تونی برای تبدیلش استفاده کنی


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
1

اینکه تاریخ ها رو می‌خواهید بصورت میلادی در دیتایبس ذخیره کنید، تصیم خیلی خوبی هست. ولی میخواید کل فرایند تبدیل تاریخ شمسی به میلادی رو خودتون بنویسید...؟! چرا؟ کار چندان ساده ای نیست.

دو پکیج زیر جزو معروفترین پکیج ها در ارتباط با تاریخ شمسی برای لاراول هستند و فکر نمی‌کنم نیازتون رو نتونند برطرف کنند:
https://github.com/morilog/jalali
https://github.com/hekmatinasser/verta

از هر کدوم که خواستید استفاده کنید و به راحتی تاریخ شمسیتون رو تبدیل به جلالی کنید و بعد داخل دیتابیس ذخیره کنید. موقع نمایش تاریخ ها به کاربر هم مجددا از همین پکیج ها برای تبدیل از میلادی به شمسی استفاده می‌کنید.


مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

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


مهرداد
@mehrdadroshanraee69 4 سال پیش مطرح شد
0

@Alitavil ببخشید متوجه نشدم میشه توضیحی بفرمایید درباره این پاسختون؟


بامداد
@bamdad 4 سال پیش مطرح شد
0

تو Class های خود PHP , میتونی تاریخ رو به میلادی بدی و شمسی تحویل بگیری
ولی اگه بخوای شمسی بدی و میلادی تحویل بگیری فکنم هنوز توی Class های خود PHP نباشه

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


$formatter = new IntlDateFormatter(
    "en_Us@calendar=persian",  // taghvimi ke mikhay behesh tabdil she masalan persian
    IntlDateFormatter::FULL,
    IntlDateFormatter::FULL,
    'Asia/Tehran', // inam ke mantegheye zamanie kamelan moshakhase
    IntlDateFormatter::TRADITIONAL,
    "yyyy-MM-dd"); // format tarikh ro moskhakhas mikone

$now=new DateTime(); 
// in tarikhe rooz ro behet mide vali mitooni behesh tarikh bedi
// masalan injoori $data = new DateTime("2018/09/14")

echo $formatter->format($now);

// inam tarikhe shamsie rooz ro barat chap mikone

محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
2

@mehrdadroshanraee69
دوست عزیز؛
پکیج ها ایراد و باگی ندارند. نیاز شما هم جزو basic ترین کارهایی هست که میشه باهاشون انجام داد. پس پیشنهادم اینه که به جای اینکه خواسته باشید خودتون فرایند تبدیل تاریخ رو انجام بدید، نهایتا یک ساعت زمان بگذارید مستندات رسمیش رو به طور دقیق مطالعه کنید تا نحوه استفاده ازش رو مسلط بشید. ارزشش رو داره... چون بعدا هم قطعا با موضوع تبدیل تاریخ ها زیاد سر و کار خواهید داشت.

موفق و پیروز باشید.


علی
@Alitavil 4 سال پیش آپدیت شد
0

@mehrdadroshanraee69

خوب خیلی راحت برای ذخیره توی دیتابیس با دستور

$time = time();

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

$time = time();

$shamsi = jdate('Y/m/d H:i:s',$time);

$miladi = date('Y/m/d H:i:s',$time);

بعد برای کلیه محاسباتت هم با همون مقدار میتونی از کربن Carbon توی خود لاراول استفاده کنی


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

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