⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همه‌چیز به قیمت قبل برمی‌گرده!

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
راکت
حل شده

اشتباه بودن timezone در moment.js

12 پاسخ

سلام.
دوستان بنده هر کاری میکنم moment js زمان رو درست نشون نمیده.

import moment from 'moment-timezone';
require('moment/locale/fa');
moment.tz.setDefault('Asia/Tehran');

اینترنت رو زیر رو کردم جوابی نبود. برای تایم زون های مختلف زمان رو تغییر میده اما روی تهران کاملا اشتباه و چند ساعت عقب تره :|

ثبت پرسش جدید

پاسخ‌ها

12
حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

بهترین پاسخ

خوب مشخصه نگاه کنید الان سیستم نموته بفهمه این تایمی که شما اومدید ذخیره کردید مال چه موقعیت مکانی هست .
این زمان باید که شما تو دیتابیس دارید باید با حالت zone ذخیره سازی بشه اما اینطور نیست برای شما

2020-04-08T18:12:25+04:30

اون قسمت +04:30 میبینید این مشخص میکنه .
حالا مسئله‌ای اگر زمان رو به شکل تهران ذخیره کردید دیگه از moment-timezone استفاده نکنید . چون لزومی نداره.

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

منظورتون از اینکه زمان رو درست نشون نمیده چیه ؟ باید به چه شکلی نمایش بده ، چیزی که انتظار دارید نمایش بده رو بفرستید تا چک کنم

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
مشکل فرمت نیست.
مشکل اینه که مثلا اگر من در ساعت 23 داده ای رو در دیتابیس ذخیره کنم، moment js اون رو 19 نشون :( در واقع اون چیزی که moment نشون میده با اون چیزی که من در دیتابیس دارم کاملا متفاوته ( از نظر زمان مشکل داره فقط. تاریخ کاملا دسته)

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi @ali.bayat
جالبه من برای تایم زون های مختلف امتحان کردم، کلا ساعت ها رو اشتباه بر می گردونه. برای مثال روی 'America/Los_Angeles' گذاشتم، وقتی که در 'America/Los_Angeles' ساعت 1:46 بود یک داده ثبت کردم و moment.js اون رو 21:16 نشون میده :|

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

شما زمان رو با momentjs اول تبدیل به تایم ایران میکنی و بعد ذخیره سازی میکنی و دوباره برگشت میدین ؟
حالا که برگشت دادید آیا دوباره با moment تبدیلش میکنید ؟

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
نه فقط برای نمایش اون رو تبدیل میکنم.

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
همین الان حساب کردم 4:30 اختلاف داره با ایران :| تایم زون رو گذاشتم توکیو ژاپن درست شد :/
به نظرتون مشکل از چیه ؟

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

بنظر باید ببینید که اون تایمی که ذخیره میکنید به چه تایم زونی ذخیره میشه احتمالا مشکل از اونجا باشه

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
توی دیتابیس کاملا درسته و به زمان تهران هستش. حتی توی tinker هم زمان درسته. :|
خود Date جاوا اسکریپت هم اشتباهه :|

حسام موسوی
حسام موسوی
@hesammousavi

تخصص: طراح و برنامه نویس

ممنون میشم یکی از مقادیری که در دیتابس ذخیره کردید رو بفرستید ببینیم تامیش چه شکلیه !

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
توضیح تصویر رو وارد کنید

وقتی رو تهران ست میکنم، هر کدوم از ساعت ها رو 4:30 ساعت قبلش رو نشون میده دقیقا اما وقتی روی توکیو ژاپن باشه درست نشون میده

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@hesammousavi
صحیح. واقعا مرسی :)
من اشتباهی توی مدل هام اومده بودم کست زیر رو قرار داده بودم :|

    protected $casts = [
        "created_at" => "datetime:Y-m-d H:i:s"
    ];

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

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