روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۸ Arezoo74kh
type:created_at and type:updated_at
جامعه پی اچ پی ایجاد شده در ۱۳ بهمن ۱۴۰۰

سلام وقت بخیر

چرا از این columnها از نوع timestamps استفاده کرده مگه نگفتیم این از ی جای به بعد مشکل داره بهتر است از نوعdateTime استفاده کنیم ؟؟؟

سلام.

دقیقه چند ویدیو؟

محسن موحد ۱۳ بهمن ۱۴۰۰، ۱۶:۰۲

خود لاراول از این نوع برای اون دوتا فیلد created_at و updated_atاستفاده کرده !!!

Arezoo74kh ۱۴ بهمن ۱۴۰۰، ۰۶:۳۲

متوجه سؤالتون نمیشم.

محسن موحد ۱۴ بهمن ۱۴۰۰، ۰۷:۴۱

نگا کنید لاراول میاد برای هر جدول خودش به طور اتومات این دوتا فیلدرو created_at و updated_at اضافه میکنه دیگه

ولی چرا نوعش رو timestamps گذاشته در حالی که باید استاد تو ویدیو‌ها میگن که این اشکال داره بهتره از نوع datetime در نظرش بگیریم نگا کنید مثلا برای این جدول af3b-Screenshot from 2022-02-03 12-51-55.png


Arezoo74kh ۱۴ بهمن ۱۴۰۰، ۰۹:۲۲

سلام سرکار خانم اروز

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


محمد نقلانی ۱۴ بهمن ۱۴۰۰، ۱۰:۵۹

نکته ی اول رنج تایم TIMESTAMP به این شکله:

1970-01-01 00:00:01 UTC to 2038-01-19 03:14:07 UTC

در این محدوده زمانی قرار میگیره.

نکته دوم TIMESTAMP براساس منطقه زمانی سرور هست، با جابجایی سرور روی داده تغییر ایجاد میشه.

محسن موحد ۱۴ بهمن ۱۴۰۰، ۱۱:۵۰

بله من هم این این توضیحاتی که دادین کاملا به همین موارد سوال پرسیدم که چرا لاراول خودش میا اینا رو TIMESTAMP قرار میده سوالم اینه دیگه چون وقتی ما یک جدول مایگریت میکنیم خودش به طور خودکار این موارد رو در متد upمیاره

$table->timestamps();

خب مگه لاراول از این مشکل خبر نداره که اومده از نوع TIMESTAMP در نظر گرفته

Arezoo74kh ۱۴ بهمن ۱۴۰۰، ۱۶:۳۲

اگر گوگل کنید timestapm vs datetime میبینید هر کدومشون عیب هایی دارن مهم اینه کدوم موردش واسه شما اهمیت بالایی داشته باشه.

این نیست که هیچکس timestamp استفاده نکنه.

در حال حاضر بهترین مدل برای تایم گرفتن timestamp زمان جاریست(منظور تایمی که بصورت integer هست) و گذاشتن اون داخل یک فیلد BIGINT در دیتابیس هست.

محسن موحد ۱۶ بهمن ۱۴۰۰، ۰۹:۰۲