سلام.
دوستان بنده هر کاری میکنم moment js زمان رو درست نشون نمیده.
import moment from 'moment-timezone';
require('moment/locale/fa');
moment.tz.setDefault('Asia/Tehran');
اینترنت رو زیر رو کردم جوابی نبود. برای تایم زون های مختلف زمان رو تغییر میده اما روی تهران کاملا اشتباه و چند ساعت عقب تره :|
خوب مشخصه نگاه کنید الان سیستم نموته بفهمه این تایمی که شما اومدید ذخیره کردید مال چه موقعیت مکانی هست .
این زمان باید که شما تو دیتابیس دارید باید با حالت zone ذخیره سازی بشه اما اینطور نیست برای شما
2020-04-08T18:12:25+04:30
اون قسمت +04:30 میبینید این مشخص میکنه .
حالا مسئلهای اگر زمان رو به شکل تهران ذخیره کردید دیگه از moment-timezone استفاده نکنید . چون لزومی نداره.
@hesammousavi
مشکل فرمت نیست.
مشکل اینه که مثلا اگر من در ساعت 23 داده ای رو در دیتابیس ذخیره کنم، moment js اون رو 19 نشون :( در واقع اون چیزی که moment نشون میده با اون چیزی که من در دیتابیس دارم کاملا متفاوته ( از نظر زمان مشکل داره فقط. تاریخ کاملا دسته)
شاید پاسخ شما همینجا باشد
@hesammousavi @ali.bayat
جالبه من برای تایم زون های مختلف امتحان کردم، کلا ساعت ها رو اشتباه بر می گردونه. برای مثال روی 'America/Los_Angeles' گذاشتم، وقتی که در 'America/Los_Angeles' ساعت 1:46 بود یک داده ثبت کردم و moment.js اون رو 21:16 نشون میده :|
@hesammousavi
نه فقط برای نمایش اون رو تبدیل میکنم.
@hesammousavi
همین الان حساب کردم 4:30 اختلاف داره با ایران :| تایم زون رو گذاشتم توکیو ژاپن درست شد :/
به نظرتون مشکل از چیه ؟
@hesammousavi
توی دیتابیس کاملا درسته و به زمان تهران هستش. حتی توی tinker هم زمان درسته. :|
خود Date جاوا اسکریپت هم اشتباهه :|
@hesammousavi
صحیح. واقعا مرسی :)
من اشتباهی توی مدل هام اومده بودم کست زیر رو قرار داده بودم :|
protected $casts = [
"created_at" => "datetime:Y-m-d H:i:s"
];