راکت
مهرداد
مهرداد
توسط مهرداد مطرح شد
7 پاسخ

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

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


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

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


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

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

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

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


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

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


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

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


بامداد
بامداد
@bamdad5 سال پیشمطرح شد
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 Freelancer
@mhyeganeh5 سال پیشمطرح شد
2

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

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


علی
علی
@Alitavil5 سال پیشمطرح شد
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 توی خود لاراول استفاده کنی


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

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