Laravel Eloquent не отображает дату / время, как в часовом поясе базы данных. - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь получить тот же часовой пояс, что и мои данные в MySQL, но ответ JSON отвечал с другим временем. Я пытался использовать Carbon, но результаты всегда показывают одно и то же (часовой пояс отличается от моего). Кроме того, у меня есть часовой пояс от app.php до 'timezone' => 'Asia/Kuala_Lumpur' для хранения данных в качестве часового пояса моей страны.

$todayentry = SensorTissue::whereDate('entryDate', Carbon::now()->setTimezone(config('app.timezone')))->get()->sortBy('entryDate');
$todayentry = json_decode($todayentry);
return $todayentry;

результаты ответа json:

[{
"tsID": 10,
"entryDate": "2020-04-04T23:57:17.000000Z",
"sensorValue": 7
},
{
"tsID": 11,
"entryDate": "2020-04-04T23:57:34.000000Z",
"sensorValue": 6
}]

ответ показывает 2020-04-04T23:57:34.000000Z в моей базе данных должно быть 2020-04-05 07:57:34.

1 Ответ

0 голосов
/ 05 апреля 2020

Попробуйте заменить следующую строку кода:

$todayentry = SensorTissue::whereDate('entryDate', Carbon::now()->setTimezone(config('app.timezone')))
                          ->get()->sortBy('entryDate');

следующим кодом:

$timeZone = config('app.timezone'); //change over here
$todayentry = SensorTissue::whereDate('entryDate', Carbon::now($timeZone))
                          ->get()->sortBy('entryDate');
...