راکت

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

7 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

7
علی
علی
@Alitavil

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

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

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

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

مهرداد
مهرداد
@mehrdadroshanraee69

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

مهرداد
مهرداد
@mehrdadroshanraee69

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

بامداد
بامداد
@bamdad

تو 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
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

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

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

علی
علی
@Alitavil

@mehrdadroshanraee69

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

$time = time();

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

$time = time();

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

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

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

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

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