احمد
3 سال پیش توسط احمد مطرح شد
4 پاسخ

به هم خوردن ساعت فیلد created-at هنگام فراخوانی دیتا ها

سلام. در قدم اول من timezone پروژه رو به Asia/Tehran تغییر دادم. خوب تا اینجا همچی درسته یعنی هنگام افزودن دیتا جدید ساعت مطابق با ساعت ایران ذخیره میشه. خوب مشکل وقتی پیش میاد که بخای دیتا هارو واکشی و سپس تبدیل به جی سون کنی، اون موقع ساعت به هم میخوره و مطابق با ساعت ایران نیست. جالبه وقتی دیتا هارو با dd() نمایش میدم ساعت دقیقا مثل ساعت ذخیره شده تو دیتابیس هست. نمیدونم مشکل کجاست


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

فقط موقع تبدیل اطلاعات به JSON دچار این قضیه میشید؟ مثلا اگر همون اطلاعات رو به view پاس بدید و اونجا نمایش بدید درست هست؟

کدهاتون رو هم اگر قرار بدید راحت تر میشه کمک کرد...


احمد
@ahmad316948 3 سال پیش مطرح شد
0

@mhyeganeh
من پروژه رو آنلاین کردم . این لینک api دیتا ها هست که بصورت جی سون خروجی میده:
http://caffeinet.romangp.ir/api/v1/notifses

اینم وضعیت اطلاعات در mysql

سورس :

 public function allNotif() {
        $notifs = Notif::all();

       // dd($notifs);

        return response()->json($notifs);
    }

محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
0

این مشکل رو فقط در نسخه آنلاین دارید یا در نسخه لوکال هم به همین صورت هست؟
مطمئن بشید که مقدار timezone رو در فایل config/app.php به درستی روی Asia/Tehran تنظیم کرده اید و همچنین اینکه یکبار دستور پاکسازی کش کانفیگ رو اجرا کنید:

php artisan config:clear

احمد
@ahmad316948 3 سال پیش مطرح شد
0

@mhyeganeh
سلام این مشکل هم در نسخه آنلاین هست و همم گلوبال.
من php artisan config:clear رو هم اجرا کردم ولی اوکی نشد.

این خروجی دیتا ها ببا متد dd() هست :

Illuminate\Database\Eloquent\Collection {#1224 ▼
  #items: array:1 [▼
    0 => App\Notif {#1225 ▼
      #fillable: array:3 [▶]
      #connection: "mysql"
      #table: "notifs"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:6 [▶]
      #original: array:6 [▼
        "id" => 1
        "title" => "اعلان شماره 1"
        "description" => "توضیحات اعلان 1"
        "link" => "http://caffeinet.romangp.ir/v1/update"
        "created_at" => "2021-09-28 12:22:08"
        "updated_at" => "2021-09-28 12:22:08"
      ]
      #changes: []
      #casts: []
      #classCastCache: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #guarded: array:1 [▶]
    }
  ]
}

و اینم خروجی دیتا بصورت جی سون هست:

[
    {
        "id": 1,
        "title": "اعلان شماره 1",
        "description": "توضیحات اعلان 1",
        "link": "http://caffeinet.romangp.ir/v1/update",
        "created_at": "2021-09-28T08:52:08.000000Z",
        "updated_at": "2021-09-28T08:52:08.000000Z"
    }
]

عجیبه ساعت تو خروجی اولی (متد dd() ) درسته ولی تو خروجی دوم اشتباهه.
اینم سورس:

// متد dd()
 public function allNotif() {
        $notifs = Notif::all();

        dd($notifs);

       // return response()->json($notifs);
    }

// جی سون

  public function allNotif() {
        $notifs = Notif::all();

       // dd($notifs);

        return response()->json($notifs);
    }

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

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