سلام دوستان @hesammousavi
از نسخه 7 لاراول استفاده میکنم
توی این نسخه مشکلی برام پیش اومده
من توی فایل کانفیگ برنامه TimeZone رو روی Asia/Tehran ست کردم و وقتی یه رکوردی رو با الکوئنت ذخیره میکنم تاریخ و ساعت بدرستی و طبق ساعت ایران ذخیره میشه توی ستون CreatedAt و UpdatedAt جدول ولی وقتی دارم اطلاعات اون تیبل رو واکشی میکنم ساعت رو انگار میکشه عقب و طبق گرینویچ (UTC) میاره
به این شکل که مثلا اگر مقدار داخل created_at هست 2020-04-22 13:25:03 ، در زمان واکشی اطلاعات میاره 2020-04-22 08:55:03
توی مدلش کست هم کردم به فرمت تاریخ ولی باز UTC اش میکنه و نشون میده ، انگار یجایی از سیستم باید تنظیم بشه
البته وقتی public $timestamps = false; باشه در زمان واکشی درست میشه ولی من میخوام createdat , updatedat موقع create بصورت خودکار insert بشن و این مشکل هم نباشه
ممنون میشم اگر کسی اطلاع داره تجربه شو در اختیارم قرار بده
کاری که خودم کردم و حل شد اینه :
توی مدل ها دوتا متد زیر رو اضافه کردم
public function getCreatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))->timezone(Config::get('app.timezone'))->toDateTimeString();
}
public function getUpdatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))->timezone(Config::get('app.timezone'))->toDateTimeString();
}
@mehdi539
سلام.
من تقریبا چنین مشکلی داشتم. دقیق متوجه نشدم چی کار کردید اما نکته ای که هست فرمت تاریخ باید مثل زیر باشه :
2020-04-08T18:12:25+04:30
در واقع باید انتهای اون تایم زون مشخص شده باشه تا بتونه تشخیص بده. من مدل رو کست کرده بودم و اون قسمت حذف شده بود و مشکل برام پیش اومد شما هم بررسی کنید که آیا مشکلتون به این صورته یا نه.
@mohsenbostan برای من داره به این شکل بر میگردونه
2020-04-22T09:54:21.000000Z و مقدار ذخیره شده در دیتابیس دقیقا به این شکله : 2020-04-21 22:16:20
در حالی که من توی فایل کانفیگ Asia/Tehran رو ست کردم
موقع ثبت در دیتابیس دقیقا طبق تایم زونی که ست کردم ذخیره میکنه ولی موقع واکشی اطلاعات 2020-04-22T09:54:21.000000Z اینجوری بر میگردونه
کاری که خودم کردم و حل شد اینه :
توی مدل ها دوتا متد زیر رو اضافه کردم
public function getCreatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))->timezone(Config::get('app.timezone'))->toDateTimeString();
}
public function getUpdatedAtAttribute($value)
{
return Carbon::createFromTimestamp(strtotime($value))->timezone(Config::get('app.timezone'))->toDateTimeString();
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟